我们有一个Silverlight应用程序,使用RichTextBox作为富文本编辑器,供用户创建电子邮件。
我们实际上有自己的序列化程序,但基本上我们正在保存和恢复Xaml。据我所知,恢复任何包含花括号的文字是不可能的。
您可以通过创建RichTextBox并在其中键入类似{weird}
的内容来相当轻松地演示这一点。然后获取文本框的.Xaml属性并将其设置在另一个文本框的.Xaml属性上 - kablooie。
由于我们有自己的序列化程序,我尝试使用<Run Text="{} the real {Text} here" />
转义Run元素的Text成员。这没什么区别。我试过用&amp;#123替换括号;但这也不起作用。
答案 0 :(得分:2)
在此确认问题并与团队核实。如果使用花括号运行启动,则会出现抛出值异常。我正在调查。
答案 1 :(得分:1)
Windows Phone 7(芒果)RichTextBox
中也会出现此问题。我找到了一个workaround here,其中包括在每个‌
的开头和结尾放置一个零宽度的非连接符Run
字符。与使用零宽度空间相反,如果您在开头处有一个开口大括号,并且在结尾处有一个结束大括号,那么这也是有效的。
答案 2 :(得分:0)
这听起来像是一个xml问题。您是否尝试将数据封装在CDATA块中以封装任何特殊字符?
<richtext>
<![CDATA[
function matchwo(a,b)
{
if (a < b && a < 0) then
{
return 1;
}
else
{
return 0;
}
}
]]>
<richtext>
答案 3 :(得分:0)
Silverlight开发人员已将此确认为错误。如果“运行文本”以“{”或空格后跟“{”开头,则会发生这种情况。因为我们有自己的序列化器,所以我可以在每次运行开始时插入零宽度空间(&amp;#8203;)来解决问题。
答案 4 :(得分:0)
尝试使用{}{weird}
(打开和关闭花括号)