1

我目前正在为 Windows Phone 开发一个 Twitter 应用程序,其中 - 通过自定义DependencyProperty-Xaml每个属性都RichTextBox绑定到推文的文本(包括以编程方式生成Run的所有文本元素)。在有花括号{}文本之前,这已经足够好了。我尝试将它们替换为{并转义,{}但无济于事。

奇怪的是,如果大括号出现在文本中间(更具体地说,在元素的Text属性中Run)一切都很好,只有当左大括号在开头*右大括号在RichTextBox崩溃的结局* 。我可以通过​在每个Run.

但是,如果在开头* 有一个左大括号,在结尾有一个右大括号*,这个问题就会变得更加复杂。在这种情况下,零宽度空格似乎不再起作用,因此唯一的解决方法是在文本的开头或结尾插入额外的“真实”字符,这显然是我做不到的。

正如两年前在这个答案RichTextBox中所承认的那样,这似乎确实是一个错误。显然,它还没有被修复。那么,有人知道我可以尝试的任何进一步的解决方法吗?

* 前面也可以只跟空格或后面只跟空格

4

1 回答 1

3

好的,经过更多的修补,我找到了一个简单的解决方法。只需在每个. _ _‌‌Run

显然,这个字符的处理方式与我之前使用的零宽度空间不同,如果你的文本在开头和结尾都有花括号,它甚至可以工作。当然,还有更多具有相同效果的不可见字符(请查看Wikipedia 上的此列表),但我认为零宽度非连接符应该具有最少的副作用。

于 2012-08-24T13:12:55.443 回答