活动设计器库中的共享WPF资源

时间:2013-04-06 10:30:04

标签: wpf workflow-foundation-4 resourcedictionary activitydesigner

我正在开发一组自定义活动设计器,其中包含自定义控件,图像,样式等。设计器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中只有相对引用?

0 个答案:

没有答案