0

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

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

第一次完全正确,但下一次,点击按钮后,那些在代码隐藏中绑定的标签将正常工作,但那些在XAML中绑定的标签X:Uid,仍然显示以前的语言资源字符串.

有人能帮我吗?

4

2 回答 2

1

WPF我们使用类似这样的东西在窗口元素(参考)上应用文化,在您的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)));            
}
于 2016-10-16T09:14:00.417 回答
0

您可以使用按钮属性:双击按钮,之后您必须在方法“button_click”中设置标签的值。

于 2016-02-27T10:02:04.670 回答