2010-01-22 23 views
6

Ben wpf ile metin yeni bir satırda görüntülemek istediğim, wpf ile bir yeni kullanıcı değilim. örn .:Metin wpf textblock içinde bir satırda nasıl görüntülenir

<TextBlock 
    Text ="asfasfasfa 
    asdasdasd" 
</TextBlock> 

, iki satır varsayılan

görüntülemek ama bu "asafsf asfafaf" gibi tek çizgide istiyorum TextBlock. Yani tüm metni bir satırda gösteriyorum bile tek satırda birden fazla satır var
ne yapmalıyım? Bunun yerine

cevap

6

:

  <TextBlock Text="Hello 
       How Are 
       You??"/> 

bunu kullanın:

  <TextBlock> 
       Hello 
       How Are 
       You?? 
      </TextBlock> 

veya bu:

  <TextBlock> 
       <Run>Hello</Run> 
       <Run>How Are</Run> 
       <Run>You??</Run> 
      </TextBlock> 

veya arkasında böyle kodunda belirlenen metin özelliği:

(In code - c#)

  <TextBlock x:Name="MyTextBlock"/> 

  MyTextBlock.Text = "Hello How Are You??" 

kod arkadaki yaklaşım ayarlamadan önce metninizi biçimlendirebilir bir avantaja sahiptir. Örnek: metin bir dosyadan alınan ve size bu şekilde yapabiliriz herhangi taşıma-dönen yeni hat karakterleri kaldırmak istediğiniz varsa:

string textFromFile = System.IO.File.ReadAllText(@"Path\To\Text\File.txt"); 
MyTextBlock.Text = textFromFile.Replace("\n","").Replace("\r",""); 
+0

Gerçekte görüntülenecek metin bir dosyadadır, bu yüzden böyle yapamam, başka bir yolu var mı? Çok teşekkür ederim. – baorui

+0

Lütfen bunun için düzenlenmiş cevabımı kontrol edin. – mg007

14

kullanın Dönüştürücü:

<TextBlock Text={Binding Path=TextPropertyName, 
Converter={StaticResource SingleLineTextConverter}} 

SingleLineTextConverter .cs: ​​

public class SingleLineTextConverter : IValueConverter 
{ 
    public object Convert(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     string s = (string)value; 
     s = s.Replace(Environment.NewLine, " "); 
     return s; 
    } 

    public object ConvertBack(object value, Type targetType, object parameter, System.Globalization.CultureInfo culture) 
    { 
     throw new NotImplementedException(); 
    } 
} 
+1

Dönüştürücü kaynak kodunu buraya örnek olarak vermişseniz nasıl olur? Kullanışlı VS'm yok, bu yüzden onu yapıştıramıyorum. Kaynak kodu bunu kesin bir cevap haline getirecektir. – Thorsten79

+0

Thaht'ın iyi yolu, teşekkürler ~~ – baorui

+1

Fikre Beğeni, teşekkürler. Ama Convert() yönteminin başında bir null-check, aksi takdirde boş bir başvuru istisnası aldım. – nightcoder

İlgili konular