我有一个Windows应用商店应用,用户应该能够更改其语言。 一个屏幕1他选择了他的语言。然后应用程序以正确的语言切换到屏幕2。
我的问题是,屏幕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 :(得分: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();
它适用于我的情况,希望类似的东西可以帮助你