WPF 文本包装与 WrapWithOverflow

TextWrapping="Wrap"TextWrapping="WrapWithOverflow"之间的“概念”区别是什么(例如,对于 TextBox) ? 在 MSDN 关于 TextBox 类的页面中没有..。 谢谢你。

91471 次浏览

MSDN

WrapWithOverflow 如果该行溢出超出,就会发生断行 可用的块宽。但是,线可能会溢出 块宽度如果分行算法不能确定一行 破坏机会,如在一个非常长的单词被限制在一个 不允许滚动的固定宽度容器。
NoWrap 无线 执行包装。
换行 如果换行发生断行 溢出超出可用块宽度,即使标准行 中断算法不能确定任何中断行的机会,如 一个非常长的单词被限制在一个固定宽度的容器中的情况 不允许滚动。

希望这个能帮上忙

一些例子:

这是原始的,未包装的版本:

No wrapping


这是 NoWrap

NoWrap


这是 Wrap。单词 RemoveSample分别包装在 vele上,即使没有换行机会。

Wrap


这是 WrapWithOverflowvele不可见(它们溢出了可用的块宽度) ,因为没有换行机会。在这两种情况下,All都被包装了,因为 space字符是一个换行机会。

WrapWithOverflow


编辑:

正如在评论中建议的那样,这里有一些 Wrap如何处理空格的例子。当 Width100时,WrapWrapWithOverflow是相同的。Wrapwiderexample之间的空间当作断行的机会,所以 example被放在一条新的线上,以保留整个连续的单词。

enter image description here

另外,WrapWithOverflow 允许你对被切断的长单词使用文本修剪(省略号) :

enter image description here

<TextBlock TextWrapping="WrapWithOverflow" Width="120" TextTrimming="CharacterEllipsis">
A really long word is antidisestablishmentarianism and we can use ellipsis trimming.
</TextBlock>