C++ 从另一个程序集创建 WPF 窗口的父级并处理事件
C++ Parenting a WPF window from another assembly and handling events
由于我认为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 窗口源,即使基类有效。任何人都可以对此给出解释/修复吗?
它
看起来像 WPF 中常见的 [库;用户控件]-[应用程序;派生控件] 问题 - 即使没有C++,我也重现了这一点。在不深入解释的情况下,一般的解决方法是聚合"基"类或将基类重新命名为模板化控件而不是用户控件(例如,没有 .xaml 文件(。如果我理解正确,您的问题与组件没有由 uri 问题标识的资源相同。
相关文章:
- 处理闪烁窗口事件
- Wxwidgets - 如何添加调整大小事件处理程序以使"X"绘图随窗口调整大小?
- 是否可以在QT GUI应用程序中处理事件时播放加载动画指示器?
- C++ winAPI 无法处理子窗口事件
- 如果窗口服务被杀,如何处理事件
- GRPC C 称为PloteimionQueue关闭,但PostemionQueue.Next在有待处理事件时永远阻
- WNDPROC处理事件更少的代码
- C FLTK 1.3.2:最新的屏幕,处理事件和非障碍睡眠
- 在运行线程中处理事件
- 如何在Windows C++中处理事件
- 使用 EVT_NAVIGATION_KEY 处理事件不起作用
- C++ 从另一个程序集创建 WPF 窗口的父级并处理事件
- 在QT OpenGL中处理事件
- 如何在QThread上处理事件
- 移动精灵和处理事件
- 处理在窗口中收到的中断的时间
- 如何处理事件消息,同时使用chrome嵌入式框架(CEF)
- 处理上次窗口关闭时的提示
- 处理事件从wxTextCtrl在wxFrame - c++ /wxWidgets
- Qt如何处理事件发出的无限循环?