2016-12-23 17 views
3

私のアプリの言語を変更するには以下のコードがありますが、それは信頼できないと判明しています。私のアプリケーションは、MainPageとUserControlsの束で構成され、ページの作成時に読み込まれます。ページ上のボタンを押して言語を変更すると、言語が変わるかどうかは50/50です。通常、MainPageの言語はかなり信頼性が高くなりますが、UserControlsは非常に信頼性がありません。信頼性を向上させるためにできることはありますか?UWPアプリの言語を変更すると気分が悪い

また、次の方法では、ページを再読み込みすると不快なちらつきが発生します。

言語を変更した後にアプリケーションを再起動すると、すべてが正しく表示されます。

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); 
+0

UserControlsは、希望どおりに言語を変更しません。ページ全体をリロードする必要があります。しかし、文字列のリストをDependencyPropertyおよびx:OneWayモードでバインドして、XAMLのUserControlsにバインドすることができます。あなたがしなければならないことは、言語を変更したいときはいつでもそのリストを変更することだけです。 –

答えて

1

私は、信頼性を向上させるために何かできることはありますか?

documentあなたがPrimaryLanguageOverrideを設定すると、これはすぐにApplicationLanguages.Languagesプロパティに反映される」について説明している。しかし、この変更は、アプリのUIにロードされたリソースにすぐには反映されない場合があります。必ずアプリを作成するにはそのような変更に対応する場合は、デフォルトのリソースコンテキストでQualifierValuesプロパティをリッスンし、リソースをリロードするために必要なアクションを実行することができます。アプリ "

詳しくはApplicationLanguages.PrimaryLanguageOverrideをお読みください。

関連する問題