我正在尝试将所有字符串资源放在一个地方。我在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正确引用共享项目中的共享字符串资源?
答案 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"/>