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

ogq8wdun  于 2022-12-14  发布在  其他
关注(0)|答案(1)|浏览(141)

我有一个简单的资源字典,其中有四个主要文件

  • 主窗口(带有一些控件)
  • 应用程序
  • 使用者控件
  • 资源字典(具有某些样式)

我希望资源字典中的样式可以跨应用程序访问,以便可以在MainWindow和UserControl中使用它们。
我已经在应用程序中放置了一个带有源代码的资源字典。资源

<ResourceDictionary Source="Assets/ButtonStyle"/>

然而,当我在MainWindow中向控件添加样式时,它说它找不到样式。它还说它需要Application.Resources中ResourceDictionary标记上的x:key
我已经将样式导入到应用程序。资源中,它们工作得很好。但是我想将它们保存在单独的资源字典文件中,因为我想分发它并保持它的顺序。

sgtfey8w

sgtfey8w1#

将您的ResourceDictionary添加到全局App.xamlResourceDictionaryMergedDictionaries属性中,并为任何其他资源指定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>

相关问题