Wpf 无法从样式ResourceDictionary引用链接的ResourceProject中的BrushResource

Wpf 无法从样式ResourceDictionary引用链接的ResourceProject中的BrushResource,wpf,xaml,resourcedictionary,Wpf,Xaml,Resourcedictionary,我在我的应用程序中有一个项目,其中保存了我所有的资源和可重用的自定义控件类(包括样式、画笔、自定义控件等) 我的应用程序的“Main”项目的App.xaml文件引用了ResourceLibrary文件,该文件引用了我组织的所有ResourceDictionary文件,如下所示: <Application.Resources> <ResourceDictionary> <ResourceDictionary.MergedDictiona

我在我的应用程序中有一个项目,其中保存了我所有的资源和可重用的自定义控件类(包括样式、画笔、自定义控件等)

我的应用程序的“Main”项目的App.xaml文件引用了ResourceLibrary文件,该文件引用了我组织的所有ResourceDictionary文件,如下所示:

     <Application.Resources>
   <ResourceDictionary>
        <ResourceDictionary.MergedDictionaries>
            <ResourceDictionary Source="/ControlResources;component/ResourceDictionaries/ResourceLibrary.xaml"/>
            <ResourceDictionary Source="Simple Styles.xaml"/>     
        </ResourceDictionary.MergedDictionaries>

        <Style TargetType="{x:Type Window}">
            <Setter Property="FontFamily" Value="Segoe UI" />
        </Style>

        <Style TargetType="{x:Type Rectangle}" /> 

    </ResourceDictionary>


</Application.Resources>
包含一个大补丁(上面包含的矩形样式)

下面是我的“ControlResources”项目的快照

当我从我的主项目“GlenwareMaster”中引用样式和customControl资源时,引用它们非常有效,但是当从任何样式资源中引用“笔刷”下的笔刷资源时,应用程序显然找不到它们

我的问题:我是否可以添加一个项目自参考链接(固有的右键单击混合功能?)。如何让样式ResourceDictionary在同一项目中定位笔刷ResourceDictionary


提前谢谢

如何在样式词典中引用笔刷资源词典?确保您使用的是包URI并且它们是正确的

我的标准实践是在我计划在另一个资源字典中引用的任何资源字典中使用绝对包uri格式,如果将来将其移动到另一个项目,则会导致更少的错误。在公共样式资源字典中引用笔刷时,请尝试以下操作:

<ResourceDictionary Source="pack://application:,,,/ControlResources;component/ResourceDictionaries/Brushes/MyBrushes.xaml"/>


您可以在此处阅读有关包URI的更多信息:

非常感谢您如此快速的响应,@Jesper。您知道有什么方法可以使同一项目的所有其他ResourceDictionary文件都可以使用Color/Brush ResourceDictionary,而不必为每个文件重新引用源文件?谢谢你的帮助:)我不知道。如果您有一组共享资源字典,您希望在整个项目中都包含这些字典,那么您可以将它们合并到一个公共字典中,如果您担心合并字典的数量,可以引用这些字典。否则,您必须以某种方式指定它。非常感谢:)我现在很清楚,这是我唯一的选择。