Was ist der "konzeptionelle" Unterschied zwischen TextWrapping="Wrap"
und TextWrapping="WrapWithOverflow"
(z. B. für eine TextBox)? Auf der MSDN-Seite über die Klasse TextBox gibt es nichts ... Danke.
Was ist der "konzeptionelle" Unterschied zwischen TextWrapping="Wrap"
und TextWrapping="WrapWithOverflow"
(z. B. für eine TextBox)? Auf der MSDN-Seite über die Klasse TextBox gibt es nichts ... Danke.
Antworten:
WrapWithOverflow Zeilenumbruch tritt auf, wenn die Zeile über die verfügbare Blockbreite hinaus überläuft. Eine Zeile kann jedoch über die Blockbreite hinaus überlaufen, wenn der Zeilenumbruchalgorithmus keine Zeilenumbruchmöglichkeit ermitteln kann, wie im Fall eines sehr langen Wortes, das in einem Container mit fester Breite ohne zulässiges Scrollen eingeschränkt ist.
NoWrap Es wird kein Zeilenumbruch durchgeführt.
Wrap Zeilenumbruch tritt auf, wenn die Leitung über die verfügbare Blockbreite überläuft, auch wenn der Standard - Zeilenumbruch - Algorithmus keine Zeilenumbruch Gelegenheit bestimmen kann, wie im Fall eines sehr langen Wortes gezwungen , sich in einem mit fester Breite Behälter mit nicht erlaubt Scrollen.
Hoffe das hilft
WrapWithOverFlow
die keine Worte bricht, sondern Wrap
wird?
Einige Beispiele:
Dies ist die ursprüngliche, unverpackte Version:
Das ist NoWrap
.
Das ist Wrap
. Die Wörter Remove
und Sample
wurden am ve
und umbrochen le
, obwohl es keine Möglichkeit für Zeilenumbrüche gibt.
Das ist WrapWithOverflow
. Die ve
und le
sind nicht sichtbar (sie überlaufen die verfügbare Blockbreite), da keine Möglichkeit für Zeilenumbrüche besteht. Das All
wurde in beiden Fällen umbrochen, da das space
Zeichen eine Möglichkeit für Zeilenumbrüche darstellt.
Bearbeiten:
Wie in den Kommentaren vorgeschlagen, finden Sie hier einige Beispiele für den Umgang mit Wrap
Leerzeichen. Wenn Width
ist 100
, Wrap
und WrapWithOverflow
sind identisch. Wrap
behandelt den Abstand zwischen wider
und example
als Zeilenumbruchmöglichkeit und wird daher example
in eine neue Zeile eingefügt, um das gesamte fortlaufende Wort zu erhalten.
Wrap
Leerzeichen vollständig ignoriert werden, aber das stimmt nicht.
Eine Sache, die Sie zu den anderen Antworten hinzufügen können: Mit WrapWithOverflow können Sie Textausschnitte (Auslassungspunkte) für die langen Wörter verwenden, die abgeschnitten werden:
<TextBlock TextWrapping="WrapWithOverflow" Width="120" TextTrimming="CharacterEllipsis">
A really long word is antidisestablishmentarianism and we can use ellipsis trimming.
</TextBlock>
WrapWithOverflow
sie in Silverlight nicht unterstützt wird. NurWrap
undNoWrap
werden in Silverlight unterstützt. msdn.microsoft.com/en-us/library/…