在uwp

时间:2016-03-21 12:19:37

标签: c# xaml win-universal-app

我想直接在我的xaml布局中访问资源,官方doc给我们一些不好的例子,所以我无法让它工作。假设遵循Resources.resw

enter image description here

我可以像这样从C#类访问我的字符串资源:

 var loader = new ResourceLoader();
 var resourceString = loader.GetString("txt_ok");

如何在xaml中访问此资源以获取TextBlock文本?

<TextBlock
  x:Name="MyTextBox"
  Text="I want to get string resource here"/> 

我正在尝试herehere中的一些示例,但没有成功

2 个答案:

答案 0 :(得分:7)

在UWP应用程序中,当您在资源文件中定义字符串资源时,此字符串的Name属性可以是&#34; Name&#34;或&#34; Name.Property&#34;。

在xaml代码中,我们使用Uid属性将控件与资源相关联,但是当我们在xaml代码中使用资源时,我们必须将指定的属性添加到资源的名称中,以防控件don& #39;不知道应该对字符串资源应用什么属性。

这与后面的代码相同,您可以使用

获取资源
 var loader = new ResourceLoader();
 var resourceString = loader.GetString("txt_ok"); 

但您仍然需要将此resourceString设置为Text的{​​{1}}属性,例如:

TextBlock

因此,如果您想在xaml代码中直接使用字符串资源,则需要编辑资源文件,如下所示:

enter image description here

现在,您可以将txt.Text = resourceString; 与您的资源相关联:

TextBlock

或者像这样(不是100%正确,它取决于资源文件的位置):

<TextBlock x:Uid="txt_cancel" />

<强>增加: 您还可以在资源文件中定义其他属性,例如:

enter image description here

当您为<TextBlock x:Uid="/Resources/txt_settings" />

应用此资源时
TextBlock

你会看到:

enter image description here

答案 1 :(得分:0)

使用C#代码访问字符串资源属性

drawer: {
    left: {
        screen: 'ScreenName'
    }
}

https://liftcodeplay.com/2015/11/08/accessing-resource-strings-via-code-in-uwp/