在TextBlocks中使用软连字符或断字提示

7
我有一个Windows 8风格的中心页面,其中包含用TextBlocks显示的大文本。在某些本地化环境下,文本太长而需要折行。默认情况下,折行仅在空格和连字符处发生。但有时甚至单个单词也太长了,需要进行换行。

enter image description here

我希望单词内部的换行符能够在排版时正确使用,即放置在正确位置,并且要使用连字符(不只是放在最后一个适合该行的字母之后)。
在WPF中,我通过在文本中添加软连字符作为连字符提示来解决类似问题的方法。

在计算机和排版领域中,软连字符[..] 是一种用于指定文本中允许换行处的连字符,如果重新排版文本,则不会强制在不方便的位置强制换行。

不幸的是,在XAML框架中这种方法似乎不起作用。零宽空格也是如此。
是否有办法让软连字符起作用?或者其他插入连字符提示的方法?

注意: 我知道我可以通过编写 "Antidises-tablish-mentaria-nism" 来硬编码连字符/断点,但这将使字符串与特定(大小的)TextBlock绑定,并在其他TextBlock中创建多余的非断点中单词连字符。我想避免这种情况。


图片对我来说无法显示。看起来 stack.imgur.com 存在问题。 - dtb
@dtb:哼。好的,我也添加了一个文本描述。 - Sebastian Negraszus
@SebastianNegraszus 你解决了这个问题吗? - karlingen
@karlingen 我不记得了,但我可能没有解决这个问题。我已经很长时间没有在这个应用程序或任何其他Windows Store / UWP应用程序上工作了。 - Sebastian Negraszus
@SebastianNegraszus 我明白了,感谢您回复我。看起来这个问题有一个开放的功能请求:https://github.com/microsoft/microsoft-ui-xaml/issues/4068 - karlingen
1个回答

0

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


"-" 编码是什么意思?" - Sebastian Negraszus
你说的“使用 RichTextBlock 与 "-" 编码”是什么意思?是指在行内元素(例如段落)中使用 RichTextBlock 并插入软连字符吗?不,这样做是不行的。在你澄清之前我会给予反对票… - Sebastian Negraszus

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接