Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/silverlight/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net Silverlight 4 RichTextBox-can';t使用包含大括号的文本还原Xaml_.net_Silverlight_Xaml_Richtextbox - Fatal编程技术网

.net Silverlight 4 RichTextBox-can';t使用包含大括号的文本还原Xaml

.net Silverlight 4 RichTextBox-can';t使用包含大括号的文本还原Xaml,.net,silverlight,xaml,richtextbox,.net,Silverlight,Xaml,Richtextbox,我们有一个Silverlight应用程序,使用RichTextBox作为富文本编辑器,供用户创建电子邮件 我们实际上有自己的序列化程序,但实际上我们正在保存和恢复Xaml。据我所知,不可能恢复任何包含大括号的文本 通过创建RichTextBox并在其中键入类似于{weird}的内容,您可以相当轻松地演示这一点。然后获取textbox的.Xaml属性,并将其设置为另一个textbox-kablooie的.Xaml属性 由于我们有自己的序列化程序,我尝试用转义Run元素的文本成员。这没什么区别。我试

我们有一个Silverlight应用程序,使用RichTextBox作为富文本编辑器,供用户创建电子邮件

我们实际上有自己的序列化程序,但实际上我们正在保存和恢复Xaml。据我所知,不可能恢复任何包含大括号的文本

通过创建RichTextBox并在其中键入类似于
{weird}
的内容,您可以相当轻松地演示这一点。然后获取textbox的.Xaml属性,并将其设置为另一个textbox-kablooie的.Xaml属性


由于我们有自己的序列化程序,我尝试用
转义Run元素的文本成员。这没什么区别。我试着用{;但这也不行。

这听起来像是xml问题。您是否尝试过将数据封装在CDATA块中以封装任何特殊字符

<richtext>

    <![CDATA[
    function matchwo(a,b)
    {
    if (a < b && a < 0) then
      {
      return 1;
      }
    else
      {
      return 0;
      }
    }
    ]]>

<richtext>


在此确认问题并与团队核实。如果运行以大括号开始,则会引发值异常。我正在调查。

一位Silverlight开发人员已经确认这是一个bug。如果运行文本以“{”或后跟“{”的空格开头,就会发生这种情况。因为我们有自己的序列化程序,我可以在每次运行开始时插入一个零宽度空格(​;),这就解决了问题。

尝试使用
{}{wird}
(打开和关闭的花括号)转义。

此问题也出现在Windows Phone 7(Mango)中
RichTextBox
。我发现了一个由在每个
运行
的开始和结束处放置一个零宽度非连接符
和#8204;
字符组成的字符串。与使用零宽度空格相反,如果在开始处有一个打开的花括号,在结束处有一个关闭的花括号,这也可以工作。

将运行文本放在不幸的是,Silverlight XamlReader不支持CDATA块。没有帮助(我们先尝试了,我应该在问题中提到)。问题是Silverlight RichTextBox中有一个bug。