I have the code below to change the language of my app, but it is proving to be unreliable. My app is made up of a MainPage and a bunch of UserControls, loaded on when the page is created. When I change the language via a button press on the page it is 50/50 as to whether the language changes. Usually the MainPage language changes quite reliably, but the UserControls are very unreliable. Is there anything I can do to improve the reliability?
The method below also causes an unpleasant flicker when the page is reloaded.
If I restart the app after changing the language then everything looks as it should.
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);