11

我知道如何从“Hello”的资源
<TextBlock x:Uid="Text1"/> 中设置字符串Text1.Text

但我想这样做

<TextBlock Text = {something here to get GreetingText}/>

GreetingText“你好”在哪里

这样我也可以从代码中获得相同的字符串

var loader = new Windows.ApplicationModel.Resources.ResourceLoader();
var string = loader.GetString("GreetingText");
4

2 回答 2

13

包括这个

xmlns:system="clr-namespace:System;assembly=mscorlib"

有这样的资源system:string

<Window.Resources>
    <system:String x:Key="GreetingText">Hello</system:String>        
</Window.Resources>

并在 xaml 中使用它作为

<TextBlock Text="{StaticResource GreetingText}" />

并在后面的代码中使用它

string s = (string)objectofMainWindow.Resources["GreetingText"];

编辑:回答您的评论

它是这样的。资源字典在里面Window.Resources

<Window 
    xmlns:system="clr-namespace:System;assembly=mscorlib"

      Your Rest namespaces

     />

<Window.Resources>
    <ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
                    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
                    xmlns:local="using:ATTFamilyMap.strings">
        <system:String x:Key="GreetingText">Hello</system:String>
    </ResourceDictionary>
</Window.Resources>

Your Code

</Window>
于 2012-10-15T06:47:34.380 回答
12

Nikhil 的答案是在正确的轨道上,但对于其他平台也是正确的。

对于 Windows 8,您需要在资源目录中执行以下操作:

<x:String x:Key="MyString">This is a resource</x:String>

在您的 xaml 中:

<TextBlock Text="{StaticResource MyString}"/>

在代码中:

string myString = (string)(App.Current.Resources["MyString"]);
于 2012-10-16T11:31:23.770 回答