4

我有下面的代码来更改我的应用程序的语言,但事实证明它不可靠。我的应用由 MainPage 和一堆 UserControls 组成,在页面创建时加载。当我通过页面上的按钮更改语言时,语言是否更改为 50/50。通常 MainPage 语言的变化相当可靠,但 UserControls 非常不可靠。我能做些什么来提高可靠性吗?

当页面重新加载时,下面的方法也会导致令人不快的闪烁。

如果我在更改语言后重新启动应用程序,那么一切看起来都应该如此。

string lang = newLanguage;
ApplicationLanguages.PrimaryLanguageOverride = lang;
Windows.ApplicationModel.Resources.Core.ResourceContext.GetForViewIndependentUse().Reset();
Windows.ApplicationModel.Resources.Core.ResourceContext.GetForCurrentView().Reset();
Frame.Navigate(Frame.CurrentSourcePageType, null);
4

1 回答 1

2

我能做些什么来提高可靠性吗?

文档解释说“当您设置 PrimaryLanguageOverride 时,这会立即反映在 ApplicationLanguages.Languages 属性中。但是,此更改可能不会立即对应用程序 UI 中加载的资源生效。为确保应用程序响应此类更改,您可以在默认资源上下文中侦听QualifierValues属性并采取可能需要的任何操作来重新加载资源。这些要求可能会因应用程序使用的 UI 框架而异,并且可能需要重新启动应用程序。

请阅读ApplicationLanguages.PrimaryLanguageOverride了解更多详情。

于 2016-12-26T05:42:45.653 回答