Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

how to use styles defined in ResourceDictionary

I have several common styles and I want to share them in several pages of my Windows 8.1 application.

I know that I can achieve with merge dictionaries option, but I have no idea how to use styles defined in dictionary.

I tried this:

<Page.Resources>
<ResourceDictionary x:Key="lol">
    <ResourceDictionary.MergedDictionaries>
        <ResourceDictionary Source="Themes/Generic.xaml" />
        <ResourceDictionary>
            <Style x:Key="TextViewAllStyle" TargetType="TextBlock">
            </Style>
        </ResourceDictionary>
    </ResourceDictionary.MergedDictionaries>
    <Style x:Key="TextViewAllStyle2" TargetType="TextBlock">
    </Style>
</ResourceDictionary>
<Style x:Key="TextViewAllStyle3" TargetType="TextBlock">
</Style>
</Page.Resources>

But my Visual Studio sees only the third one...

<TextBlock Style="{StaticResource ResourceKey=TextViewAllStyle3}"/>
like image 731
Jakub Kuszneruk Avatar asked Mar 01 '14 12:03

Jakub Kuszneruk


1 Answers

add the following tag to your App.Xaml:

<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            -- reference your dictionaries here --
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>
</Application.Resources>

Then for -- reference your dictionaries here -- part: each dictionary can be added by its full path:

<ResourceDictionary Source="pack://application:,,,/MySolution.MyProject;component/Theme/Generic.xaml"/>

if in the same project by its relative path:

<ResourceDictionary Source="Themes\Generic.xaml"/>

or defined inline:

<Style x:Key="TextViewAllStyle" TargetType="TextBlock">
</Style>
like image 132
Bizhan Avatar answered Nov 02 '22 01:11

Bizhan