我正在为人们开发一个来自不同国家/地区的信息亭应用程序,在运行时应该更改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 。