Я пытаюсь изменить язык в приложении UWP, чтобы объекты my x: uid и объекты на основе ResourceLoader изменились.Я использую, как рекомендовано в других вопросах и ответах:
ApplicationLanguages.PrimaryLanguageOverride = newLanguage;
Windows.ApplicationModel.Resources.Core.ResourceContext.GetForCurrentView().Reset();
Windows.ApplicationModel.Resources.Core.ResourceContext.GetForViewIndependentUse().Reset();
Frame.Navigate(this.GetType());
Однако все, что напрямую контролируется ResourceLoader, изменяется, а все, что создается в xaml с помощью x: uid, - нет.Если я снова изменю язык, x: uid изменится на предыдущий язык, а остальное будет на новом выбранном языке.
Я думаю, что может быть что-то, что связано с поведением потока по двум причинам.Во-первых, предложение по исправлению, которое работает, состоит в том, чтобы задержать поток перед навигацией.Во-вторых, у меня разное поведение на виртуальных и физических машинах (очевидно, эта ошибка возникает на физической машине).
Я был бы очень признателен за решение или объяснение, которое обеспечивает хорошую функциональность, не основанную на задержке потоков.
Некоторые другие связанные вопросы и ответы:
UWP MVVM: обновить страницу после смены языка
C # программно изменить язык приложения UWP в реальном времени
Спасибо