共享项目和XAML的字符串资源

时间:2016-01-09 10:34:42

标签: c# wpf xaml resources

我正在尝试将所有字符串资源放在一个地方。我在Visual Studio中创建了一个名为MySolution.Shared的共享项目,它包含我的字符串资源文件,即

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

在该文件中,我定义了一个包含键MyKey和值MyString的字符串。然后,我将此共享项目的引用添加到名为MySolution.Universal的通用应用程序项目中。

在XAML中使用<TextBlock Name="MyTextBlock" x:Uid="MyKey"/>既不显示任何内容也不引发异常。在后面的代码中使用MyTextBlock.Text = ResourceLoader.GetForCurrentView().GetString("MyKey")可以正常工作。

那么,如何直接从XAML正确引用共享项目中的共享字符串资源?

1 个答案:

答案 0 :(得分:1)

原因是WPF并不知道&#34; MyTextBlock&#34;应该是&#34; MyKey&#34;的价值被分配到。

所以你需要改变&#34; MyKey&#34;的关键。到&#34; MyKey.Text&#34;。 这意味着任何元素都带有x:Uid =&#34; MyKey&#34;应将其text属性设置为&#34; MyString&#34;。

对于Localizable UI以及当您想要设置元素的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"/>