TextBlocks中的软连字符或连字符提示

时间:2013-06-28 10:41:33

标签: c# wpf windows-store-apps winrt-xaml

我有一个Windows 8样式的中心页面,其中的图块包含TextBlocks中的大文本。在某些本地化版本中,文本对于一行来说太长而需要包装。每个默认包装仅发生在空格和连字符处。但有时即使单个单词太长也需要包装。

enter image description here

图片描述:3个蓝色瓷砖:"文字","几个BREAK短BREAK字"," Antidisesta BREAK blishmenta BREAK rianism"

我希望单词内的包装在印刷上是正确的,即用连字符和正确的位置(不是简单地在适合该行的最后一个字母之后)。

在WPF中,我通过将soft hyphens放入文本中解决了类似问题,如连字符提示。

  

在计算和排版中,软连字符[..]是一种用于指定文本中的位置的连字符,其中允许带连字符的中断,而不会在文本重新流动时在不方便的位置强制换行。

不幸的是,这似乎不适用于XAML framework。他们完全被忽略了。 Zero-width spaces也是。

有没有办法让软连字符有效?或者其他一些插入连字符提示的方法?

注意:我知道我可以通过编写" Antidises-tablish-mentaria-nism"来对连字符/符号进行硬编码,但这会将字符串绑定到特定的(a的大小)TextBlock并在其他TextBlocks中创建超级不间断的中间单词连字符。我想避免这种情况。

1 个答案:

答案 0 :(得分:0)

软连字符通常使用“U + 00AD”实现,但在WinRT中会被忽略。您可以将RichTextBlock与“ - ”编码一起使用。