0

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

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

     <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>

注意:我在这里关注这篇文章,其中包括一个大修复(上面包含的 Rectangle 样式)。

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

这就是我的

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

我的问题:我可以只添加一个项目自引用链接(固有的右键单击混合功能吗?)。如何获得样式 ResourceDictionaries 以在同一项目中定位 Brush ResourceDictionaries?

提前致谢!

4

1 回答 1

0

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

我的标准做法是在我计划在另一个资源字典中引用的任何资源字典中使用绝对包 uri 格式 - 如果您最终将其移动到另一个项目中,会导致更少的错误。当您在常用样式资源字典中引用画笔时,请尝试以下操作:

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

您可以在此处阅读有关 Pack URI 的更多信息:http: //msdn.microsoft.com/en-us/library/aa970069.aspx

于 2013-04-11T19:46:46.073 回答