Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/wpf/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
WPF Flowdocument-在%签名之前防止换行_Wpf_Flowdocument - Fatal编程技术网

WPF Flowdocument-在%签名之前防止换行

WPF Flowdocument-在%签名之前防止换行,wpf,flowdocument,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没

我有一个为客户生成文档的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>
当我打印和½;%我希望半个符号和“%”符号之间不要断线。

和#x00BD;是表示½符号的unicode。我在1/2和%之间换行,即使它们之间没有空格。

尝试将空格替换为

编辑:总是有备份计划,只需使用TextWrapping=NoWrap在FlowDocument中添加TextBlocks,但我会尝试找到更好的方法…

Unicode字符“Word Joiner”(Word Joiner)就是为了这个目的。它“通常不产生任何空格,但禁止在其两侧换行”()。将其放置在U+00BD和“%”之间,以防止它们之间发生换行

不幸的是,WPF(或者可能是Windows提供的典型字体)不支持它,而是将其呈现为方形框。作为替代方案,您可以使用U+FEFF;现在不推荐使用这个字符作为零宽度非中断空格(它保留用作字节顺序标记),但它可以作为我的换行防止器


最后,还有一些其他字符也可以用于此目的:(窄无中断空间)也可以防止中断,但也可以渲染为非常薄的空间。(无中断空间)防止中断并显示为正常空间。

抱歉,我在场景中删去了太多内容,试图简化问题。我已经更新了这个问题。我在文档的换行部分实际上没有空格。看起来很有希望——明天我可以试试完美!U+2060实际上似乎对我有用,并且在转换成PDF后幸存了下来。