Windows 8:HyperLinkBut​​ton上的多语言

时间:2012-09-08 12:49:09

标签: xaml localization windows-runtime

在Windows 8中,您可以使用以下内容设置内容或文本属性:x:UiD="SomeText" 这将从资源文件加载id为SomeText的文本。 不幸的是,这不适用于HyperLinkBut​​tons,内容属​​性不会从资源文件加载。

有人知道如何从资源文件中设置HyperLinkBut​​ton的内容吗? 以及如何为其他财产做到这一点?与AutomationProperties.Name

一样

2 个答案:

答案 0 :(得分:3)

回答第二个问题:您可以在资源文件中使用以下名称:
SomeText.[using:Windows.UI.Xaml.Automation]AutomationProperties.Name

答案 1 :(得分:1)

您可以尝试以下内容:

<HyperlinkButton>
   <TextBlock x:UiD="SomeText" .../>
</HyperlinkButton>

或更详细:

<HyperlinkButton>
  <HyperlinkButton.Content>
   <TextBlock x:UiD="SomeText" .../>
  </HyperlinkButton.Content>
</HyperlinkButton>

另一种解决方案,是通过绑定通过ViewModel提供本地化字符串。如下所示:

 <TextBlock Text="{Binding ALocalizedLabel}"/>
 <Button AutomationProperties.Name="{Binding AnotherLocalizedLabel}" .../>

这种解决方案的一个缺点是由于地铁的简约绑定系统。您无法提供默认(后备)值。一个优点是它使您的XAML更容易混淆和更易读。