2016-01-09 100 views
1

我試圖把我所有的字符串資源放在一個地方。我創建了一個共享項目在Visual Studio稱爲MySolution.Shared其中包含我的字符串資源文件,即帶共享項目和XAML的字符串資源

MySolution.Shared/Strings/en-US/Resources.resw

在該文件中我已經定義與關鍵MyKey和價值MyString一個字符串。然後,我已將此共享項目的引用添加到名爲MySolution.Universal的Universal Apps項目中。

在XAML中使用<TextBlock Name="MyTextBlock" x:Uid="MyKey"/>既不顯示任何內容,也不會引發異常。在後面的代碼中使用MyTextBlock.Text = ResourceLoader.GetForCurrentView().GetString("MyKey")確實有效。

那麼,如何正確引用共享項目中的共享字符串資源直接從XAML?

回答

1

原因是WPF不知道「MyTextBlock」的哪個屬性應該被分配給「MyKey」的值。

因此,您需要將「MyKey」的密鑰更改爲「MyKey.Text」。 這意味着任何帶有x:Uid =「MyKey」的元素都應該將其文本屬性設置爲「MyString」。

這是一個本地化的用戶界面的最有用,當你想設置的元素,或它們的字體等的RTL或LTR流動方向......

例如: (資源)

<data name="Inputs.FontFamily" xml:space="preserve"> 
<value>Segoe UI</value> </data> 

和xaml:

<TextBox x:Uid="Inputs" TextWrapping="Wrap" VerticalAlignment="Stretch" Margin="0"/> 
+1

完美。現在明白了。 –