WPF Flowdocument - 在%符号之前防止换行

时间:2010-11-15 15:22:56

标签: wpf flowdocument

我有一个FlowDocument为客户端生成一个文档,它正在获得他们不喜欢的换行符。有没有办法标记一段文字,它应该避免换行?像这样:

<Paragraph>Here is a paragraph where there should be <span NoLineBreak=True>no line break</span> in a certain part.</Paragraph>

显然,Span没有NoLineBreak属性,但我想知道是否有一些等效功能可用,或者是否有人可以让我开始实现SpanWithNoLineBreak类或RunWithNoLineBreak类?

更新 实际上,我遇到的一个问题是百分号,甚至没有空格:

<Paragraph>When I print and &#x00BD;% I want the one-half and '%' symbols to not line break between them.</Paragraph>

&amp; #x00BD;是½符号的unicode。我在1/2和%之间得到一个换行,即使它们之间没有空格。

2 个答案:

答案 0 :(得分:3)

Unicode字符“Word Joiner”(U+2060)仅用于此目的。它“通常不会产生任何空间,但禁止在它的任何一侧断线”(Wikipedia)。你把它放在U + 00BD和'%'之间,以防止它们之间的换行。

不幸的是,WPF(或者Windows提供的典型字体)不能正确支持它,而是将其渲染为方框。作为替代方案,你可以使用U + FEFF;现在不推荐使用这个字符作为零宽度不间断空格(它保留用作字节顺序标记),但它对我来说是一个防止断线的。

最后,还有一些其他角色也可以用于此目的:U+202F(狭窄的不间断空间)也可以防止破坏,但也可以渲染为非常薄的空间。 U+00A0(不间断空格)可防止断开并显示为普通空格。

答案 1 :(得分:0)

尝试用non-breaking spaces替换空格。

编辑:总是有一个备份计划只是在你的FlowDocument中使用TextWrapping = NoWrap放入TextBlocks,但我会尝试找到更好的方法......