找不到ResourceDictionary.ThemeDictionaries

时间:2016-04-25 12:59:24

标签: c# wpf

我为Windows 8.1默认XAML模板和样式下载了resource dictionary。在我的应用程序中(使用v2010),我添加了一个资源字典文件。但是,当我将它粘贴到字典文件中时,它会给我一个ResourceDictionary。找不到错误的字典。

find the attached pic for reference

我错过了任何dll吗?

1 个答案:

答案 0 :(得分:0)

我认为ThemeDictionaries仅适用于通用Windows平台(UWP)应用程序。如果要编写标准的Windows WPF应用程序,则XML命名空间ThemeDictionaries不适用。

如果要在WPF中分离资源,则可以在App.xaml中如下引用它们:

  1. 在项目中创建一个“资源”文件夹,然后添加所需的WPF资源字典文件。

  2. 将样式添加到每个资源文件中的ResourceDictionary部分,例如

        <LinearGradientBrush x:Key="EpicLinearGradientBrush" StartPoint="0.5,0.0" EndPoint="0.5,1" Opacity="0.4">
        <GradientStop Color="LightSkyBlue" Offset="0.2" />
        <GradientStop Color="#3598db" Offset="0.5" />
    </LinearGradientBrush> </ResourceDictionary>
    

最后,您需要让您的应用程序知道它需要使用您创建的其他资源文件。

在App.xaml文件中

<Application.Resources>
    <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="Resources/EpicBrushes.xaml"></ResourceDictionary>
            <ResourceDictionary Source="Resources/EpicStyling.xaml"></ResourceDictionary>
        </ResourceDictionary.MergedDictionaries>
    </ResourceDictionary>        
</Application.Resources>

您现在可以像引用其他任何资源一样引用在页面中。

 <DockPanel ZIndex="0" Grid.Row="0" Background="{DynamicResource EpicLinearGradientBrush}">