1

我正在开发一堆自定义活动设计器,其中包含自定义控件、图像、样式等。设计器 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 文件添加任何特殊标记?即使有多个开发人员为不同的设计师工作,这也将使实施一致的风格变得更加容易。

顺便说一句:我尝试在 Source=".​​.." 属性中使用相对路径。在 VS2010 的工作流中使用我的活动时,这不起作用,然后找不到资源。使用包含程序集名称的绝对路径,它可以正常工作。但是,VS2010 或重新托管的设计器是否无法自动找到资源字典文件的路径,而我的 XAML 中只有相对引用?

4

0 回答 0