2013-01-15 17 views
13

benim TextBlock sTextBlock neden biten boşlukları metinden kırpıyor? İşte

<StackPanel Orientation="Horizontal" Margin="0,3,0,0"> 
    <TextBlock Text="6 or more characters, at least one letter and a number, " FontFamily="Segoe UI" Foreground="#000000" FontSize="13"/> 
    <TextBlock Text="no symbols" FontFamily="Segoe UI" Foreground="#000000" FontSize="13"/> 
</StackPanel> 

Ve burada çıkışı (ekran görüntüsü) enter image description here

Neden TextBlock düzeltir biten alanlarda nedir? Ancak lider boşluklar verdiğimde iyi çalışıyor.

cevap

16

O xml:space="preserve"gerektiği hile yapmak benziyor (Preserving Whitespace in XAML bakınız) ancak Windows Store uygulamasının (WPF yapar) içinde çalışıyor gibi görünmüyor. Eğer bölünemez boşluk karakteri &#160; kullanırsanız o sana sonunda boşluk olup olmadığını kontrol dışı kıran boşluklu yerine Text özellikte bir dönüştürücü oluşturmayı deneyin herhalde

<TextBlock Text="6 or more characters, at least one letter and a number,&#160;&#160;&#160;&#160;&#160;&#160;&#160;" .... 

çalışır

- cüretli gerçekleşen kesme çok erken gerçekleşmez.

+0

kırılmayan bir alan hile yapar ama 'space' özelliği yapmak kolay bir şey :( –

+0

WinRT 8.1 Güncellemesi. Xml: boşluk hala çalışmıyor ve bu çözüm yok. –

+4

Bu, (  kullanıyor) şu anda bir Windows 10 Universal uygulaması üzerinde çalışmıyor gibi görünüyor.Metin özelliğini doğru bir şekilde oluşturması için ayarlamadan ziyade, açılış ve kapanış etiketlerinin arasındaki içerik olarak ayarlamak zorunda kaldım. Boşuna başka bir dizi varyantı çalıştı (\ u0020, #nbsp, vb.) – matthewsheets

3

deneyin kullanımı xml:space="preserve":

<StackPanel Orientation="Horizontal" Margin="0,3,0,0"> 
    <TextBlock xml:space="preserve" Text="6 or more characters, at least one letter and a number, " FontFamily="Segoe UI" Foreground="#000000" FontSize="13"/> 
    <TextBlock xml:space="preserve" Text="no symbols" FontFamily="Segoe UI" Foreground="#000000" FontSize="13"/> 
</StackPanel> 
+0

+1. Ama bu mağaza uygulamaları çalışmıyor –

9

<TextBlock />.'da <Run /> ile çözüldü. sarma bir sorun değildi eğer; (# 160)

<StackPanel Orientation="Horizontal" Margin="0,3,0,0"> 
    <TextBlock FontFamily="Segoe UI" Foreground="#000000" FontSize="13"> 
     <Run Text="6 or more characters, at least one letter and a number, " /> 
     <Run Text="no symbols" /> 
    </TextBlock> 
</StackPanel> 

Ve sözcük kaydırma hala kolayca Jim'in çözümünü kullanmak

<StackPanel Orientation="Horizontal" Margin="0,3,0,0"> 
    <TextBlock FontFamily="Segoe UI" Foreground="#000000" FontSize="13" 
     Width="200" TextWrapping="Wrap"> 
     <Run Text="6 or more characters, at least one letter and a number, " /> 
     <Run Text="no symbols" /> 
    </TextBlock> 
</StackPanel> 

çalışır.

Aklınızda, HTML'nin boşlukları nasıl işlediğini ve koruduğunu düşünün. Bu aynı zamanda XAML alanlarını ele alır ve korur. Tabii ki, bir TextBlock içinde daha tam anlamıyla ele alınacağını düşünürdünüz, ha? Eh, ne olduğu. En azından bir çözüm var.

<RichTextBlock> 
<RichTextBlock.Blocks> 
    <Paragraph > 
    <Paragraph.Inlines> 
    <Run Text="trailing " /><Run Text="bbb" /><Run Text=" leading" /> 
    </Paragraph.Inlines> 
    </Paragraph> 
</RichTextBlock.Blocks> 
</RichTextBlock> 

Ama aynı zamanda belirttiğiniz olanlar ek olarak çalışır arasında fazladan boşluk eklemek için görünüyor:

+0

+1 İyi cevap :) –

+0

Jerry neden bunu yapıyordum benim app normal modda iken metin ** 'olmalıdır 6 veya daha fazla karakter, en az bir harf ve sayı, sembol yok ** ve ek görüntü modunda ** 6 veya daha fazla karakter, en az bir harf ve bir sayı, no symbol' ** olmalıdır. Bunu yaptım. Ama bu metinlerin '.resw' dosyasından gelmesini istiyorum. Başka bir deyişle, nasıl yazabilirim? ' ' ** tıpkı ' –

+0

gibi bir ** yayınladım [ayrıca bununla ilgili soru] (http://stackoverflow.com/q/14343376/468724) ** –

0

RichTextBlock (WP 8.1 WinRT olarak) hem baştaki ve sondaki boşluk korumak gibi görünüyor.

1

Farklı bir çözüm buldum! IsTextSelectionEnabled ayarlandığında, \u+A0 çalışır.

Bunun neden olacağını bilmiyorum ve bu tam bir sürprizdi (bu alanı ekledim çünkü "benim de üzerinde çalışıyorum. Metinlerim neden Evrensel Uygulamalar'da kırpılıyor?" sorunu).

da U+205F (orta matematiksel alan) aynı zamanda IsTextSelectionEnabled ile birlikte çalışır. Alan özniteliği için

+0

2016-10-06'dan itibaren, IsTextSelectionEnabled trick artık çalışmıyor, – rsclient