我有两种语言的UWP应用程序。对于我使用的一些标签:代码隐藏中的Loader.GetString("LableName")
以及其他标签在XAML中使用了x:Uid
。
用户可以使用如下按钮更改CurrentCulture
:
CultureInfo.CurrentCulture = new CultureInfo("fa-IR");
第一次完全正常工作,
但是对于下一次,单击按钮后,那些绑定在代码隐藏中的标签将正常工作,
但是那些与X:Uid
绑定在XAML中的内容仍显示以前的语言资源字符串。
有人可以帮助我吗?
答案 0 :(得分:1)
在WPF
中,我们使用类似的内容在窗口元素(reference)上应用文化,在UWP
应用中使用它,我希望它有所帮助:
public MyWindow()
{
this.Language = XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag);
InitializeComponent();
}
您还可以在App类中为整个应用程序全局设置语言:
protected override void OnStartup(StartupEventArgs e)
{
base.OnStartup(e);
// Set application startup culture based on config settings
string culture = ConfigurationManager.AppSettings["Culture"];
SetCulture(culture);
FrameworkElement.LanguageProperty.OverrideMetadata(typeof(FrameworkElement),
new FrameworkPropertyMetadata(XmlLanguage.GetLanguage(CultureInfo.CurrentCulture.IetfLanguageTag)));
}
答案 1 :(得分:0)
您可以使用按钮属性:双击按钮后,必须在方法中设置标签的值" button_click"。