gpt4 book ai didi

c# - C++ 从另一个程序集继承 WPF 窗口并处理事件

转载 作者:太空狗 更新时间:2023-10-29 23:08:11 27 4
gpt4 key购买 nike

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

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

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

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

即:

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

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

最佳答案

它看起来像是 WPF 中常见的 [library;user control]-[application;derived control] 问题 - 即使没有 C++,我也重现了这个问题。在不深入解释的情况下,一般的解决方法是聚合“基”类或将基类重新设计为模板化控件而不是用户控件(例如,没有 .xaml 文件)。如果我理解正确,你的问题与The component does not have a resource identified by the uri相同问题。

关于c# - C++ 从另一个程序集继承 WPF 窗口并处理事件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10393316/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com