【发布时间】:2015-11-05 04:10:01
【问题描述】:
您好,我正在处理本地化。我有一个列表框。如果我更改列表框中的语言。整个应用程序必须更改为该语言(包括当前页面)。
所以我从列表框中获得了该语言并分配给
Windows.Globalization.ApplicationLanguages.PrimaryLanguageOverride = cul;
问题1:我想重新加载/刷新当前页面(例如:Page1)?
private void LocList_SelectedIndexChanged(object sender, SelectionChangedEventArgs e)
{
Windows.Globalization.ApplicationLanguages.PrimaryLanguageOverride = cul;
var resourceContext = Windows.ApplicationModel.Resources.Core.ResourceContext.GetForCurrentView();
resourceContext.Reset();
}
这不起作用。我也试过了
private void LocList_SelectedIndexChanged(object sender, SelectionChangedEventArgs e)
{
Windows.Globalization.ApplicationLanguages.PrimaryLanguageOverride = cul;
var manager = Windows.ApplicationModel.Resources.Core.ResourceManager.Current;
manager.DefaultContext.QualifierValues.MapChanged += QualifierValues_MapChanged;
}
private void QualifierValues_MapChanged(IObservableMap<string, string> sender, IMapChangedEventArgs<string> @event)
{
ResourceContext.ResetGlobalQualifierValues();
//ResourceManager.Current.DefaultContext.Reset();
}
问题 2:如果我从第 1 页导航到第 2 页,更改的语言将应用于第 2 页。但如果我回到第 1 页,则不会应用语言更改。
问题 2(续):我的意思是如果我从第 2 页导航到第 1 页。 Page1 构造函数没有命中(如果构造函数被命中,Page 初始化将碰巧获得正确的输出)。
如果我做错了,请指导我。
【问题讨论】:
标签: c# windows-phone-8.1