2011-11-15 9 views
32

को देखते हुए विंडोज फोन 7.1 परियोजना में एक स्वरूपित पाठ ब्लॉक:TextBlock <Run> रिक्ति

<StackPanel Orientation="Horizontal"> 
    <TextBlock Foreground="DarkGray" VerticalAlignment="Bottom" Margin="0,0,0,8"> 
      <Run Text="total length "/> 
      <Run Text="{Binding TotalHours}" FontSize="48"/> 
      <Run Text="h "/> 
      <Run Text=":" FontSize="48"/> 
      <Run Text="{Binding TotalMinutes}" FontSize="48"/> 
      <Run Text="m "/> 
    </TextBlock> 
</StackPanel> 

यह सही ढंग से वी.एस. डिजाइनर में पूर्वावलोकन किया जा रहा है:

vs text block

यह पहले से ही नहीं लग रही है जिस तरह से मैं मिश्रण में चाहता हूं:

blend text block

यह एमुलेटर और वास्तविक उपकरण में ब्लेंड (अच्छी नौकरी मिश्रण टीम) जैसा दिखता है।

बड़े 8 और 45 से पहले और बाद में उन रिक्त स्थानों को क्या जोड़ता है?

मैं अपने लेआउट को सही तरीके से देखने के लिए कैसे मजबूर कर सकता हूं (जैसे वीएस डिजाइनर में)?

उत्तर

53

यदि आप एक ही पंक्ति में अपने सभी Runs लिखते हैं, तो खाली स्थान चलेगा। मूल रूप से यूआई पर एक खाली जगह एक खाली जगह है।

<TextBlock Foreground="DarkGray" VerticalAlignment="Bottom" Margin="0,0,0,8"><Run Text="total length "/><Run Text="{Binding TotalHours}" FontSize="48"/><Run Text="h "/><Run Text=":" FontSize="48"/><Run Text="{Binding TotalMinutes}" FontSize="48"/><Run Text="m "/></TextBlock> 

enter image description here

+3

महान जबाब। गंभीरता से, हमें उन रनों को मिला जो टेक्स्टब्लॉक के बच्चे तत्व हैं, टेक्स्टबॉक कैसे प्रदर्शित होता है, इसके लिए यह महत्वपूर्ण क्यों है कि हम उनके बीच सफेद जगहों को स्थानांतरित करते हैं या नहीं। और क्यों न्यूलाइन + कई जगहों को एकल स्थान के रूप में व्याख्या किया जाता है ?? –

+3

@ValentinKuzub क्योंकि आप रन के बीच सादा पाठ दर्ज कर सकते हैं और इसे प्रस्तुत किया जाएगा। एक ही स्थान पर लगातार सफेद जगहों (टैब, प्रवेश) को संकुचित करना आम XML व्यवहार है, हम में से अधिकांश HTML में पहले ही परिचित हैं। –

+2

हाँ, जैसे कि यह एक्सएमएल पर एचटीएमएल महानता का एक बड़ा उदाहरण है? स्पेशल केस हैंडलिंग के साथ रन, रन और व्हाइटिंग स्पेस के बीच मिश्रित पाठ को अनुमति देना एक अच्छी चीज़ और अजीब पसंद नहीं है। आपकी स्वैपिंग समस्या और कारण। समस्या टेक्स्टब्लॉक के बच्चे एक्सएमएल तत्वों का अजीब उपचार है। इसमें तत्वों के उपचार के बीच अजीब सफेद जगह उपचार और अजीब कच्चा पाठ शामिल है। –

9

जस्टिन एक्स्ट्रा लार्ज के जवाब बंद का निर्माण करने के लिए, महत्वपूर्ण बात यह है कि आप रन टैग के बीच खाली स्थान के नहीं हो सकता है, लेकिन टैग में खाली स्थान के लिए खुद को बात शामिल नहीं है ... है

तो तुम अलग पंक्ति में रन जगह रचनात्मक हो सकता है, लेकिन परिणाम के लिए रिक्त स्थान नहीं जोड़:

<!-- Formatted to prevent adding spaces between runs --> 
<TextBlock Foreground="DarkGray" VerticalAlignment="Bottom" Margin="0,0,0,8" 
    ><Run Text="total length " 
    /><Run Text="{Binding TotalHours}" FontSize="48" 
    /><Run Text="h " 
    /><Run Text=":" FontSize="48" 
    /><Run Text="{Binding TotalMinutes}" FontSize="48" 
    /><Run Text="m " 
/></TextBlock> 
+0

फिर रन के बजाए स्पैन का उपयोग क्यों नहीं करते? (या वे विंडोज फोन पर समर्थित नहीं हैं?) –

+0

मुझे लगता है कि टैग्स के साथ किसी समस्या के बजाय टैग के रूप में व्यवहार किए जाने वाले टैग के बीच व्हाइटस्पेस के साथ समस्या का अधिक होना है। जो मैं समझता हूं, एक स्पैन का उपयोग टेक्स्ट टेक्स्ट में गैर टेक्स्ट तत्व जोड़ने के लिए किया जाता है, जहां रन केवल पाठ के लिए होता है, इसलिए मुझे लगता है कि रन के स्थान पर एक स्पैन का उपयोग करने से अतिरिक्त रिक्त स्थान जोड़े जाने के साथ समस्या ठीक हो जाएगी। –

+0

वह था, धन्यवाद! – serop

संबंधित मुद्दे