我有一个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 ½% I want the one-half and '%' symbols to not line break between them.</Paragraph>
&amp; #x00BD;是½符号的unicode。我在1/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,但我会尝试找到更好的方法......