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

WPF Resource Dictionary In Application Resources

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

我希望资源字典中的样式可以跨应用程序访问,以便我可以在 MainWindow 和我的 UserControl 中使用它们。

我在我的 Application.Resources

中放置了一个带有源的资源字典
<ResourceDictionary Source="Assets/ButtonStyle"/>

然而,当我在 MainWindow 中将样式添加到控件时,它说找不到样式。它还说它需要 Application.Resources.

中 ResourceDictionary 标签上的 x:key

我已将样式导入 Application.Resources,它们工作正常。但是我想将它们保存在单独的资源字典文件中,因为我想分发它并使其保持有序。

非常感谢任何帮助! :)

将您的 ResourceDictionary 添加到全局 App.xaml ResourceDictionaryMergedDictionaries 属性 并为任何其他资源提供 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>