WPF文本换行与WrapWithOverflow

时间:2011-09-08 13:35:04

标签: wpf textwrapping

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

3 个答案:

答案 0 :(得分:292)

一些例子:

这是原始的,未打开的版本:

No wrapping


这是NoWrap

NoWrap


这是WrapRemoveSample分别包含在vele,即使没有换行机会。

Wrap


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

WrapWithOverflow


修改

正如评论中所建议的,这里有一些Wrap如何处理空格的例子。当Width100时,WrapWrapWithOverflow相同。 Wrapwiderexample之间的空格视为换行机会,因此将example放在新行上以保留整个连续的单词。

enter image description here

答案 1 :(得分:177)

MSDN

  

WrapWithOverflow 如果线路溢出,则会发生换行   可用的块宽度。但是,一条线可能会溢出   如果断行算法无法确定一条线,则阻止宽度   打破机会,就像一个非常长的词被限制在一个   固定宽度的容器,不允许滚动。
   NoWrap 没有线路   进行包装。
  换行如果换行则会发生换行   溢出超出可用的块宽度,即使是标准行   破解算法无法确定任何换行机会,如   在固定宽度容器中约束很长字的情况   没有滚动允许。

希望这有帮助

答案 2 :(得分:0)

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>