2013-02-07 33 views
1

我有一個WPF應用程序,我希望它是兩種語言。我重複我的Resources.resx並建立了我的兩種語言是這樣的:在執行時更改本地化WPF

enter image description here

所以,當我第一次加載我MainApplication我這樣做:

Properties.Resources.Culture = new CultureInfo("es-ES"); 

InitializeComponent(); 

所以一切以所需的語言加載。現在我想去的明顯一步,我設計了我的申請Select language

enter image description here

如何重新加載不同語言的界面在執行時間任何想法?

編輯:

我發現this鏈接,似乎工作。但我有一個問題。當我嘗試找到時,它會啓動一個錯誤...它說ResourceReferenceKeyNotFoundException。去here檢查我的錯誤。

+0

嘗試http://stackoverflow.com/questions/6661661/how-to-update-window-form-ui-after-setting-currentuiculture – Manish

+0

備註:CultureInfo是每個線程。不要忘記, – fixagon

+0

其實沒有工作... – Sonhja

回答

1

你改變文化的UI線程,這應該工作:

var culture = new CultureInfo("en-US"); 
Thread.CurrentThread.CurrentCulture = culture; 
Thread.CurrentThread.CurrentUICulture = culture); 
FrameworkElement.LanguageProperty.OverrideMetadata(typeof(FrameworkElement), new FrameworkPropertyMetadata(XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag))); 
+0

不行,對不起... – Sonhja