Wie kann ich in WPF eine neue Zeile in den Text eines Etiketts einfügen, z.
<Label>Lorem
ipsum</Label>
<Label><TextBlock>Lorem<LineBreak/>ipsum</TextBlock></Label>
Sie müssen TextBlock verwenden, da TextBlock eine Sammlung von Inline-Objekten als untergeordnete Elemente akzeptiert. Sie geben dem TextBlock-Element also drei Inline-Elemente: Run Text = "Lorem", LineBreak und Run Text = "ipsum".
Sie können Folgendes nicht tun:
<Label>Lorem<LineBreak/>ipsum</Label>`
weil eine Beschriftung ein untergeordnetes Inhaltselement akzeptiert.
Ich bin mir auch nicht sicher, was genau Ihr Anwendungsfall ist, aber beachten Sie, dass ich einen TextBlock in Ihr Label-Element eingefügt habe. Ist es repetitiv? Nicht wirklich, je nach Bedarf. Hier ist ein guter Artikel über die Unterschiede zwischen den beiden Elementen: Unterschied zwischen Label und TextBlock
<TextBlock> <Run>First</Run> <LineBreak/> <Run>Second</Run> </TextBlock>
Lorem
Ipsum
In WPF können Sie den Wert
" "
oder verwenden"
"
Beispielsweise:
("10" ist die ASCII-Nummer für Zeilenumbruch)
oder
("A" ist die ASCII-Nummer für Zeilenumbruch in Hex)
quelle
Wenn ich dies im ViewModel oder Modell mache, habe ich festgestellt, dass die Verwendung von Environment.NewLine das konsistenteste Ergebnis erzielt, einschließlich der Lokalisierung. Es sollte auch direkt in der Ansicht funktionieren, aber das habe ich nicht getestet.
Beispiel:
In der Ansicht
Im ViewModel:
quelle
Ein Beispiel für das Hinzufügen einer QuickInfo mit mehreren Zeilen zu einem Steuerelement, z. B. einer Schaltfläche. Der Tooltip ist in der Breite begrenzt, sodass er umgebrochen wird, wenn ein Satz zu breit ist.
Getestet auf VS2019 + .NET 4.6.1 + WPF.
quelle