我想直接在我的 xaml 布局和官方中访问资源 doc给我们一些糟糕的例子,所以我无法让它发挥作用。假设以下 Resources.resw
:
我可以像这样从 C# 类访问我的字符串资源:
var loader = new ResourceLoader();
var resourceString = loader.GetString("txt_ok");
例如,对于 TextBlock
文本,我如何在 xaml 中访问此资源?
<TextBlock
x:Name="MyTextBox"
Text="I want to get string resource here"/>
最佳答案
在UWP 应用程序中,当您在资源文件中定义字符串资源时,该字符串的Name
属性可以是“Name”或“Name.Property”。
在xaml代码中,我们使用Uid
属性将控件关联到资源,但是当我们在xaml代码中使用资源时,我们必须将指定的属性添加到资源的名称中,以防控件不使用不知道应该对字符串资源应用什么属性。
这在后面的代码中是一样的,你使用获取资源
var loader = new ResourceLoader();
var resourceString = loader.GetString("txt_ok");
但您仍然需要将此 resourceString
设置为 TextBlock
的 Text
属性,例如:
txt.Text = resourceString;
因此,如果您想在 xaml 代码中直接使用字符串资源,则需要像这样编辑您的资源文件:
现在您可以像这样将您的 TextBlock
关联到您的资源:
<TextBlock x:Uid="txt_cancel" />
或者像这样(不是100%正确,这取决于你的资源文件的位置):
<TextBlock x:Uid="/Resources/txt_settings" />
添加: 您还可以在资源文件中定义其他属性,例如:
当您将此资源应用于 TextBlock
时:
<TextBlock x:Uid="MyApp" />
你会看到:
关于c# - 在 uwp 的 xaml 布局中访问 .resx 字符串资源,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36130859/