绑定资源与Xaml x:Uid有时无法正常工作

时间:2016-02-27 09:15:51

标签: windows-10 win-universal-app uid currentculture

我有两种语言的UWP应用程序。对于我使用的一些标签:代码隐藏中的Loader.GetString("LableName")以及其他标签在XAML中使用了x:Uid。 用户可以使用如下按钮更改CurrentCulture

 CultureInfo.CurrentCulture = new CultureInfo("fa-IR");

第一次完全正常工作, 但是对于下一次,单击按钮后,那些绑定在代码隐藏中的标签将正常工作, 但是那些与X:Uid绑定在XAML中的内容仍显示以前的语言资源字符串。

有人可以帮助我吗?

2 个答案:

答案 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"。