C++ 从另一个程序集创建 WPF 窗口的父级并处理事件

本文关键字:处理事件 窗口 WPF 另一个 程序集 创建 C++ | 更新日期: 2023-09-27 18:32:57

由于我认为Visual Studio中的故障,我一直无法完成这项工作,因此如果有人可以尝试这种情况并分享发生的事情,我将不胜感激。

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

我想在C++应用程序中生成 WPF 窗口,因此我导入其引用并创建窗口的新实例并在新的应用程序上下文下运行。这工作正常。

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

即:

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

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

C++ 从另一个程序集创建 WPF 窗口的父级并处理事件

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