如何在UWP中的运行时更改消息对话框文本字体



我正在为人们开发一个来自不同国家/地区的信息亭应用程序,在运行时应该更改UI语言。

ApplicationLanguages.PrimaryLanguageOverride可以更改页面中显示的文本和字体,但是对话框中的内容没有效果,对话框总是以字体显示默认语言的字体。

某些语言不应以另一种语言的字体显示,就像中文文本不应以日语字体显示。

是否有一种方法可以在运行时更改对话框字体,就像页面的 ApplicationLanguages.PrimaryLanguageOverride属性一样?

我的解决方案是创建类语言,在其中定义字符串lcid lcid (您可以Google Google Google What what是LCID)和列表 of Strings 文本

创建一个静态方法,该方法将以不同的语言返回您所有文本并填写:

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"
                }
            },
        };
    }
}

在您的Usercontrol中:

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

现在,您可以通过比较当前LCID和SET texts 将语言切换到 _CurrentLanguageTexts 应该是 x:bind

最新更新