0

在我的项目中,我试图嵌入来自 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 工具包,这是一种非常干净的方式。

谁能帮我这个?

4

1 回答 1

1

您是否尝试过使用完整的包 URI 语法

您是否尝试将“组件”更改为“组件”?还要确保字典的构建操作设置为 Resource 并且您正确引用了 CuratioCMS.Client.UI 程序集。

于 2012-10-07T23:36:47.967 回答