2012-11-29 84 views
3

我有一個組合應用程序,它具有一個Shell窗口並具有一些模塊,每個模塊都使用MEF(Microsfot Prism)加載到外殼。 Shell本身有一個資源文件默認(Resource.resx)和其他語言(如Resource.ar-SA.resx)也用於支持Localilzation。XAML無法從Resx文件中讀取值

  • XAML的:我已經使用x:Static Resource.KeyName
  • 在C#代碼:我用了GetString(keyName, culture)獲得所需要的字符串。

支持本地化,我已經添加了一行代碼,獲取系統當前的文化,並加載所需的RESX文件。 設置當前的文化。

Resource.Culture = 
    new System.Globalization.CultureInfo(System.Globalization.CultureInfo.CurrentCulture.Name); 
在App.Xaml.cs

所有這些工作完全沒問題。

類似地,使用MEF加載的每個模塊都具有如上所述的資源文件。但是對於模塊,Xaml中爲特定語言文件定義的資源鍵不起作用。它總是從Default(Resource.Resx)文件中獲取值。但是在使用ResourceManager類的代碼中使用的任何鍵都可以正常工作。

回答

0

我最終將所有資源都保存在「基礎架構」項目中,以便從一個地方加載所有資源,這只是簡化了它。

我的XAML綁定這個樣子

獲取refrence您RESX類。

xmlns:resources="clr-namespace:Infrastructure.resources;assembly=Infrastructure" 

現在得到的文本

Content="{x:Static resources:Resources.Activity_Regarding}" 

您可能已經這樣做了,但我不能看到。您需要確保名稱空間與要使用的resx匹配。所以你的模塊命名空間。