代码之家  ›  专栏  ›  技术社区  ›  Clyde

wpf flowdocument-防止在%符号之前换行

  •  2
  • Clyde  · 技术社区  · 15 年前

    我有一个为客户机生成文档的流程文档,它得到了一个他们不喜欢的换行符。是否有任何方法可以标记一段文本,以避免换行?像这样:

    <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;是表示1/2符号的Unicode。我得到的是1/2和%之间的折线图,即使它们之间没有空格。

    2 回复  |  直到 15 年前
        1
  •  3
  •   Bradley Grainger    15 年前

    Unicode字符“Word Joiner”( U+2060 )只是为了这个目的。它“通常不产生任何空间,但禁止在它的任何一侧换行”( Wikipedia )您将它放在U+00BD和“%”之间,以防止它们之间出现换行符。

    不幸的是,WPF(或者Windows提供的典型字体)不支持它,而是将其呈现为方形框。另一种选择是,您可以使用u+feff;将此字符用作零宽度不间断空格现在已被弃用(它保留用作字节顺序标记),但它对我起到了断行防止器的作用。

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

        2
  •  0
  •   Ana Betts    15 年前

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

    编辑 :好吧,总是有一个备份计划,就是在流文档中放入textBlocks,textWrapping=nowrap,但我会尝试找到更好的方法…