【问题标题】:Binding resource with Xaml x:Uid some times not working使用 Xaml x:Uid 绑定资源有时不起作用
【发布时间】:2016-02-27 09:15:51
【问题描述】:

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

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

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

有人可以帮我吗?

【问题讨论】:

  • 嗨!你解决了这个问题吗?

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


【解决方案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)));            
}

【讨论】:

    【解决方案2】:

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

    【讨论】:

      猜你喜欢
      • 2016-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-20
      • 2023-03-16
      • 2014-09-09
      • 1970-01-01
      相关资源
      最近更新 更多