Set resource string to XAML

Inder Kumar Rathore picture Inder Kumar Rathore · Oct 15, 2012 · Viewed 26.8k times · Source

I know how to set string from resource
<TextBlock x:Uid="Text1"/> where Text1.Text is "Hello"

But I want to do like this

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

where GreetingText is "Hello"

So that I may get the same string from code also as

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

Answer

Nikhil Agrawal picture Nikhil Agrawal · Oct 15, 2012

Include this

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

Have a resource of system:string like this.

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

and use it in xaml as

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

and use it in code behind as

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

Edit: Answer to your comment

Its this way. Resource Dictionary is inside 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>