在我的项目中,我试图嵌入来自 Avalon Wizard 的源代码,但发生了一些奇怪的事情,我无法成功集成它。
我的自定义控件库中有以下结构
- 向导
- 主题
- Aero.NormalColor.xaml
- Aero2.NormalColor.xaml
- AeroWizardHeader.xaml
- 通用的.xaml
- Wizard97.xaml
- WizardAero.xaml
- 通用的.xaml
- 主题
- 主题
- 通用的.xaml
在我的 Generic.xaml 中,我有以下声明
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="CuratioCMS.Client.UI;Component/Wizard/Themes/Generic.xaml" />
</ResourceDictionary.MergedDictionaries>
在 Wizard/Themes/Generic.xaml 里面是我如何定义我的 MergedDictionaries
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="CuratioCMS.Client.UI;Component/Wizard/Themes/Wizard97.xaml" />
<ResourceDictionary Source="CuratioCMS.Client.UI;Component/Wizard/Themes/WizardAero.xaml" />
<ResourceDictionary Source="CuratioCMS.Client.UI;Component/Wizard/Themes/AeroWizardHeader.xaml" />
</ResourceDictionary.MergedDictionaries>
根据 Avalon 实现,在 Aero.NormalColor.xaml 中还提供了一个 MergedDictionary,如下所示
<ResourceDictionary.MergedDictionaries>
<ResourceDictionary Source="CuratioCMS.Client.UI;Component/Wizard/Themes/AeroWizardHeader.xaml" />
</ResourceDictionary.MergedDictionaries>
我的问题是我无法在我的项目中使用我自己的类库,因为设计器抛出异常,即:找不到资源'wizard/themes/curatiocms.client.ui;component/wizard/themes/wizard97.xaml'。
如果我更改 Wizard/Theme/Generic.xaml 中的路径,则错误消失,但向导无法提供 Aero 功能,甚至设计器也无法按预期工作。
我还要说,我决定采用这种架构是因为根据扩展的 WPF 工具包,这是一种非常干净的方式。
谁能帮我这个?