wake-up-neo.com

Newline in einem WPF-Label?

Wie kann ich im Text einer Beschriftung in WPF eine neue Zeile wie die folgende hinzufügen?

<Label>Lorem 
  ipsum</Label>
80
Natrium
<Label><TextBlock>Lorem<LineBreak/>ipsum</TextBlock></Label>

Sie müssen TextBlock verwenden, da TextBlock eine Auflistung von Inline-Objekten als untergeordnete Elemente akzeptiert. Sie geben also dem TextBlock-Element drei Inline-Elemente: Run Text = "Lorem", LineBreak und Run Text = "ipsum". 

Sie können Folgendes nicht tun:

<Label>Lorem<LineBreak/>ipsum</Label>`

weil ein Label ein untergeordnetes Inhaltselement akzeptiert.

Sie sind sich nicht sicher, was genau Ihr Anwendungsfall ist, Sie werden jedoch ein TextBlock in Ihr Label-Element eingefügt. Wiederholt sich? Nicht wirklich, je nach Bedarf. Hier ist ein guter Artikel zu den Unterschieden zwischen den beiden Elementen: Unterschied zwischen Label und TextBlock

112
Szymon Rozga

in WPF können Sie den Wert "&#10;" oder "&#xA;" verwenden.

Zum Beispiel:

<Label Content="Lorem&#10;ipsum" />

("10" ist die ASCII - Nummer für Newline)

oder

<Label Content="Lorem&#xA;ipsum" />

("A" ist die ASCII - Nummer für Zeilenumbrüche in Hex)

Example, with a border arround label to show boundry

86
00jt

Wenn ich dies im ViewModel oder Model mache, habe ich festgestellt, dass die Verwendung von Environment.NewLine das konsistenteste Ergebnis hat, einschließlich der Lokalisierung. Es sollte auch direkt in der View funktionieren, aber ich habe das nicht getestet.

Beispiel: 

In der Ansicht

<Label Content="{Binding SomeStringObject.ParameterName}" />

Im ViewModel:

SomeStringObject.ParameterName = "First line" + Environment.NewLine + "Second line";
4
HeyZiko

Ich verstehe, dass Zeilenumbrüche in einem Textblock funktionieren. Wenn Sie jedoch, wie in der Frage angegeben, eine neue Zeile in einem Etikett verwenden möchten, verwenden Sie diese in Ihrer Zeichenfolge. Ich habe Leerzeichen dazwischen, da ich sonst die Sequenz in diesem Kommentar nicht posten kann & # X a; Verwenden Sie diese 5 Zeichen zusammen ohne Leerzeichen, um die gewünschte Zeile zu erhalten.

0
Scott Jasin