我正在开发一组自定义活动设计器,其中包含自定义控件,图像,样式等。设计器XAML分布在库项目中的几个子目录中(不一个WPF应用程序,因此没有app.xaml可用)
我需要一个存储资源的中心位置,就像常规WPF应用程序中的app.xaml一样。
目前我使用 projectdir \ Properties \ lib.xaml文件,如下所示:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ControlTemplate x:Key="TrafficLight">
...
</ControlTemplate>
</ResourceDictionary>
从我所有的设计师XAML中引用这个:
<sap:ActivityDesigner.Resources>
<ResourceDictionary>
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="pack://application:,,,/ActDesLib;component/Properties/lib.xaml" />
</ResourceDictionary.MergedDictionaries>
其中 ActDesLib 是我的程序集的名称。
这确实有效,但看起来有点笨拙。有没有更好的方法呢?
是否有一些“魔术”app.xaml类文件自动包含在库项目中,而不需要为单个XAML文件添加任何特殊标记?即使有多个开发人员在不同的设计师身上工作,这也会使执行一致的风格变得更加容易。
BTW:我尝试在Source =“...”属性中使用相对路径。当在VS2010内部的工作流程中使用我的活动时,这不起作用,然后找不到资源。使用包含程序集名称的绝对路径,它可以正常工作。但是,VS2010或重新设计的设计器是否无法自动找到资源字典文件的路径,而我的XAML中只有相对引用?