Cho*_*ski 3 c# xaml win-universal-app
我想直接在我的xaml布局中访问资源,官方文档给我们一些不好的例子,所以我无法让它工作.假设如下Resources.resw:
我可以从C#类访问我的字符串资源,如下所示:
var loader = new ResourceLoader();
var resourceString = loader.GetString("txt_ok");
Run Code Online (Sandbox Code Playgroud)
我如何在xaml中访问此资源以获取TextBlock文本?
<TextBlock
x:Name="MyTextBox"
Text="I want to get string resource here"/>
Run Code Online (Sandbox Code Playgroud)
在UWP应用程序中,当您在资源文件中定义字符串资源时Name,此字符串的属性可以是"Name"或"Name.Property".
在xaml代码中,我们使用Uidattribute将控件与资源相关联,但是当我们在xaml代码中使用资源时,我们必须将指定的属性添加到资源的名称,以防控件不知道应该将哪个属性应用于字符串资源.
这在后面的代码中是相同的,您可以使用资源
var loader = new ResourceLoader();
var resourceString = loader.GetString("txt_ok");
Run Code Online (Sandbox Code Playgroud)
但是你仍然需要将它设置为例如resourceString的Text属性TextBlock:
txt.Text = resourceString;
Run Code Online (Sandbox Code Playgroud)
因此,如果要在xaml代码中直接使用字符串资源,则需要编辑资源文件,如下所示:
现在,您可以TextBlock将您的资源与此相关联:
<TextBlock x:Uid="txt_cancel" />
Run Code Online (Sandbox Code Playgroud)
或者像这样(不是100%正确,它取决于资源文件的位置):
<TextBlock x:Uid="/Resources/txt_settings" />
Run Code Online (Sandbox Code Playgroud)
添加: 您还可以在资源文件中定义其他属性,例如:
当您将此资源应用于TextBlock:
<TextBlock x:Uid="MyApp" />
Run Code Online (Sandbox Code Playgroud)
你会看见:
| 归档时间: |
|
| 查看次数: |
3347 次 |
| 最近记录: |