C# 应用程序资源中的WPF资源字典

C# 应用程序资源中的WPF资源字典,c#,wpf,resourcedictionary,wpf-style,C#,Wpf,Resourcedictionary,Wpf Style,我有一个包含四个主要文件的简单资源字典 主窗口(带有一些控件) 应用 用户控制 资源字典(带有一些样式) 我希望资源字典中的样式可以在整个应用程序中访问,这样我就可以在MainWindow和我的UserControl中使用它们 我在应用程序中放置了一个带有源的资源字典。参考资料 <ResourceDictionary Source="Assets/ButtonStyle"/> 但是,当我在主窗口中向控件添加样式时,它会说找不到样式。它还说它需要在Application.Re

我有一个包含四个主要文件的简单资源字典

  • 主窗口(带有一些控件)
  • 应用
  • 用户控制
  • 资源字典(带有一些样式)
我希望资源字典中的样式可以在整个应用程序中访问,这样我就可以在MainWindow和我的UserControl中使用它们

我在应用程序中放置了一个带有源的资源字典。参考资料

<ResourceDictionary Source="Assets/ButtonStyle"/>

但是,当我在主窗口中向控件添加样式时,它会说找不到样式。它还说它需要在Application.Resources中的ResourceDictionary标记上有一个x:key

我已经将样式导入到应用程序中。资源和它们工作良好。但是,我希望将它们保存在单独的资源字典文件中,因为我希望分发它们并使其保持有序


非常感谢您的帮助!:)

将您的
ResourceDictionary
添加到全局
App.xaml
ResourceDictionary
MergedDictionaries
属性中,并给任何其他资源一个
x:Key

    <Application x:Class="WpfApplication1.App"
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:local="clr-namespace:WpfApplication1"
             StartupUri="MainWindow.xaml">
    <Application.Resources>
        <ResourceDictionary>
            <ResourceDictionary.MergedDictionaries>
                <ResourceDictionary Source="Assets/ButtonStyle"/>
            </ResourceDictionary.MergedDictionaries>
            <SolidColorBrush x:Key="myBrush1" Color="Blue" />
            <SolidColorBrush x:Key="myBrush2" Color="Red" />
        </ResourceDictionary>
    </Application.Resources>
</Application>

这要求资源字典有一个x:Key,您的示例中没有显示该键。这是一个屏幕抓图:而且,这会导致另一个错误,即“属性”资源“只能在“Application.resources”行上设置一次”。