2015-02-06 141 views
0

我有一個Windows應用商店應用,用戶應該可以在其中更改其語言。 One Screen 1他選擇他的語言。然後,應用程序以正確的語言切換到屏幕2。Windows應用商店應用:以編程方式更改語言

我的問題是,屏幕2不會以正確的語言啓動。如果我切換回屏幕1並更改爲其他語言,則屏幕2將選擇之前選擇的語言。

我的本地化版位於Resources.resw文件中。

這裏是我使用的代碼:

private void ChangeLanguage(SupportedLanguage language) 
    { 
      CultureInfo cultureInfo = CultureInfoForSupportedLanguage(language); 

      Windows.Globalization.ApplicationLanguages.PrimaryLanguageOverride = cultureInfo.Name; 
      CultureInfo.DefaultThreadCurrentCulture = cultureInfo; 
      CultureInfo.DefaultThreadCurrentUICulture = cultureInfo; 

      ResourceContext.GetForCurrentView().Reset(); 

     Frame rootFrame = Window.Current.Content as Frame; 
     rootFrame.Language = cultureInfo.Name;    
    } 

回答

0

我曾與Windows應用商店的應用程序相同的問題。 我解決了這個問題有一點解決辦法:

切換 - 就像你 - 與

Windows.Globalization.ApplicationLanguages.PrimaryLanguageOverride = language; 

但我也刪除了導航緩存

var Frame = Window.Current.Content as Frame; 
     Frame.CacheSize = 0; 
     Frame.Navigate(typeof(Screen1)); 
     Frame.CacheSize = *your Cachesize*; 
     Frame.Navigate(typeof(Screen2)); 
     Frame.GoBack(); 

它的工作在我的情況,希望類似的事情是去幫你

+0

感謝您的回答。它適用於第一種語言的更改,但第二次更改時,應用程序崩潰,調試程序無法處理它。 – netshark1000 2015-02-12 16:35:42

+0

@ netshark1000我有同樣的問題,你有沒有解決這個問題? – Jeff 2016-05-13 20:26:57

+0

是的,但我不記得了。這非常複雜。我停止開發窗戶。這匹馬死了。 – netshark1000 2016-05-14 06:31:08

相關問題