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

标签 c# wpf resourcedictionary wpf-style

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

  • 主窗口(带有一些控件)
  • 申请
  • 用户控制
  • 资源词典(部分样式)

我希望资源字典中的样式可以在整个应用程序中访问,以便我可以在 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>

关于c# - 应用程序资源中的 WPF 资源字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44826361/

相关文章:

c# - 在 ItemsControl 中使用 GeometryDrawing

c# - 无法正确实现WPF MVVM

c# - Wpf 将动态位图添加到图像

silverlight - 在运行时添加 ResourceDictonary 时出现异常

ReSharper 在设计时未找到 WPF 资源,但构建了解决方案

c# - 反射大师 : Why aren't my MethodInfo objects equal?

c# - WPF 中引用的 .NET Standard 类库 - 设计时 XAML 中的符号错误

c# - Application.Run(Form) 与 Form.Show()?

wpf - 如何在 Visual Studio 2012 中使用 Blend 打开 WPF 项目?

wpf - 从外部文件或程序集中加载 WPF 样式或其他静态资源