2013-12-23 33 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標籤內容)

問候