问题
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}"/>
回答1:
add the following tag to your App.Xaml:
<Application.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
-- reference your dictionaries here --
</ResourceDictionary.MergedDictionaries>
</ResourceDictionary>
</Application.Resources>
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>
来源:https://stackoverflow.com/questions/22114260/how-to-use-styles-defined-in-resourcedictionary