首页 > 技术文章 > 改变语言并重新刷新界面

qianblue 2016-06-10 13:26 原文

>>"for example i will change application language  in settings.xaml so i want to restart appication or go to App.cs constructor again without exit ?"

If your app is Universal Windows Phone 8.1 runtime app, because the pages and controls that are already rendered are cached, we can use ResourceContext.Reset methods to update text of all custom controls at runtime without restarting the app. For example:

var NewLanguage = (string)((ComboBoxItem)e.AddedItems[0]).Tag;
Windows.Globalization.ApplicationLanguages.PrimaryLanguageOverride = NewLanguage;
Windows.ApplicationModel.Resources.Core.ResourceContext.GetForViewIndependentUse().Reset();
Windows.ApplicationModel.Resources.Core.ResourceContext.GetForCurrentView().Reset();

 

After that, reload your Page, using Navigate method:

if (Frame != null)
    Frame.Navigate(typeof(MyPage));

推荐阅读