2017-09-19 34 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