2017-09-19 29 views
-1

我正在使用多个xaml文件作为资源字典,问题是当显示文本时转义字符没有被转换回来。 例如这是代码带转义字符的资源字典不能解析转义字符

<clr:String x:Key = "CMMsg_143">Cannot rename file &amp;quot;%s&amp;quot; to &amp;quot;%s&amp;quot; - %s</clr:String> 

而不是显示不能重命名档案 “%s”,以 “%S” - %s的写不能重命名文件& QUOT;%S & QUOT;到&“%s &”; - %S

这是我添加它

using (System.IO.FileStream stream = System.IO.File.OpenRead(file)) 
      { 
       System.Windows.Markup.XamlReader reader = new System.Windows.Markup.XamlReader(); 
       ResourceDictionary myResourceDictionary = (ResourceDictionary)reader.LoadAsync(stream); 
       this.Resources.MergedDictionaries.Add(myResourceDictionary); 
      } 

的用法是这样的。

<Button Style="{StaticResource DefBtn}" DockPanel.Dock="Top" x:Name="button_CreateElement" Content="{DynamicResource CMMsg_143}" Click="button_CreateElement_Click"/> 

或来自后面的代码。

(String)this.FindResource("CMMsg_143"); 

有没有解决这个问题?

+0

您需要向我们展示您的代码。 – Enigmativity

+0

@Enigmativity有什么想法? – VegaBrothers

+0

什么是你的文件的编码? – Isma

回答

1

为什么不简单地在ResourceDictionary中定义这样的string

<clr:String x:Key="CMMsg_143">Cannot rename file "%s" to "%s" - %s</clr:String> 

没有理由尝试使用您在XAML中定义的string中的引号进行转义。

+0

这将是无效的XML。 – Enigmativity

+0

不,对我而言,这是奇迹。你显然正在对ResourceDictionary做一些奇怪的事情。而你的问题没有多大意义。为什么&会被打印为“? – mm8

+0

这是唯一不合法的地方,因为它是你的字符串的值,所以把它改为有效的值,并且你全部设置了。” – mm8