【问题标题】:WPF Resource Dictionary In Application Resources应用程序资源中的 WPF 资源字典
【发布时间】:2017-12-03 05:27:29
【问题描述】:

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

  • MainWindow(带有一些控件)
  • 应用
  • 用户控制
  • 资源字典(带有一些样式)

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

我在我的 Application.Resources 中放置了一个带有源的资源字典

<ResourceDictionary Source="Assets/ButtonStyle"/>

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

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

非常感谢任何帮助! :)

【问题讨论】:

    标签: c# wpf resourcedictionary wpf-style


    【解决方案1】:

    将您的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,这在您的示例中没有显示。这是一个屏幕截图:imgur.com/a/Io6IP,此外,这在“Application.Resources”行上给出了“属性“资源”只能设置一次”的附加错误。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-04-08
    • 1970-01-01
    相关资源
    最近更新 更多