0

私はさまざまな国の人々のためのキオスク アプリを開発しています。実行時に UI 言語を変更する必要があります。

ApplicationLanguages.PrimaryLanguageOverrideページに表示されるテキストとフォントを変更できますが、メッセージ ダイアログのコンテンツには影響しません。ダイアログは常に既定の言語のフォントで表示されます。

中国語のテキストを日本語のフォントで表示してはならないのと同様に、一部の言語は別の言語のフォントで表示してはなりません。

ApplicationLanguages.PrimaryLanguageOverrideページのプロパティと同じように、実行時にダイアログのフォントを変更する方法はありますか?

4

1 に答える 1

0

私の解決策は、クラス Languageを作成し、そこで文字列 Lcid (LCID とは何かをググることができます) と文字列Textsのリストを定義することでした。

すべてのテキストをさまざまな言語で返し、入力する静的メソッドを作成します。

public class Language
{
    public string Lcid { get; set; }
    public List<string> Texts { get; set; }

    public static List<Language> GetLanguages()
    {
        return new List<Language>
        {
            new Language
            {
                Lcid = "uk",
                Texts = new List<string>
                {
                    "Привіт",
                    "Бувай"
                }
            },
            new Language
            {
                Lcid = "en",
                Texts = new List<string>
                {
                    "Hello",
                    "Bye"
                }
            },
        };
    }
}

あなたのユーザーコントロールで:

    private readonly List<Language> _languages = Language.GetLanguages();
    private List<string> _currentLanguageTexts = new List<string>();

これで、現在の LCID を比較して言語を切り替え、 XAML でx:Bindする必要がある_currentLanguageTextsにTextsを設定できます。

于 2016-12-27T08:27:48.670 に答える