我知道如何从资源中设置字符串
<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");
答案 0 :(得分:11)
包括此
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>
答案 1 :(得分:11)
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"]);