2015-02-06 111 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

相关问题