11

「こんにちは」
<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 に答える