2013-12-23 31 views
0

我正在为Windows Store设计媒体播放器,并且我正在使用Resources.resw文件来存储所有英文(en-GB)字符串和其他.xlf文件以存储翻译在其他几种语言中。 我在XAML代码中使用x:Uid="*something*"来访问字符串。例如,我有下一个AppBarButton:Metro:从全球资源中获取字符串

<AppBarButton Icon="Play" 
       x:Uid="Play" 
       Label="Play" 
       Click="btnPlayPause_Click" 
       Name="PlayPauseAppBarButton"/> 

以任何语言显示文本我尝试完美工作。唯一的问题是,我的“PlayPauseAppBarButton”是一个双重目的按钮: - 当没有什么玩的图标是“播放”和标签中的“播放” - 当有东西玩,现在的图标是“暂停”和标签“暂停”

改变从代码中的图标很简单:

PlayPauseAppBarButton.Icon = new SymbolIcon(Symbol.Pause); 

问题仍然相应地更改标签。 我已经尝试:

var loader = new Windows.ApplicationModel.Resources.ResourceLoader(); 
PlayPauseAppBarButton.Label = loader.GetString("Pause.Label"); 

有没有错误,资源“Pause.Label”是公认的,但是当程序运行时会显示“播放”(因为最初的XAML的),当它有要更改标签,它什么也不显示。调试后,我观察到loader.GetString(“Pause.Label”)返回一个“”值(无文本)。

所以,我怎么能解决问题呢?

回答

1

访问通过C#与“Pause.Label”标记的资源串可以拨打

loader.GetString("Pause/Label"); 

您还可以创建适当的可视状态的自定义控制(例如,“暂停” /“播放”)的揭示必要的按钮和标签(包括通过x:uid加载的xaml标签内容)

问候