3

我一直无法完成这项工作,因为我认为这是 Visual Studio 中的一个小故障,所以如果有人可以尝试这种情况并分享发生了什么,我将非常感激。

我在解决方案 2 项目中进行了设置: - 已启用 CLI 的 C++ 应用程序 (.exe) - C#/WPF 类库,其内部有一个 .xaml 表单和一个匹配的 .cs 窗口类 (.dll)

我想在我的 C++ 应用程序中生成 WPF 窗口,因此我导入它的引用并创建窗口的新实例并在新的应用程序上下文下运行。那很好用。

我现在想在这个窗口之外创建类并处理从 C# 窗口中的受保护函数继承的不同事件,因此在 C++ 程序集中创建一个公共 ref 类,其子类是 .xaml 驱动窗口的 .cs 类。这编译得很好。

IE:

public ref class myCPPWindow : myWPFWindow { ... };

然后,我将生成的窗口更改为位于 C++ 程序集中的父类,而不是位于 C# 程序集中的基类。现在,在加载 .xaml 窗口时,我在 C# 基类的 InitializeComponent() 部分收到一个错误,我需要说它无法从 C# 程序集加载 .xaml 窗口源,即使基类工作。任何人都可以对此给出解释/修复吗?

4

1 回答 1

1

它看起来像是 WPF 中常见的 [库;用户控件]-[应用程序;派生控件] 问题——即使没有 C++,我也重现了该问题。在不深入解释的情况下,一般的解决方法是聚合“基”类或将基类重新设计为模板控件而不是用户控件(例如,没有 .xaml 文件)。如果我理解正确,您的问题与组件没有由 uri问题标识的资源相同。

于 2012-05-18T10:27:38.920 回答