我可以从WPF UserControl创建ActiveX控件并在非CLI C++应用程序中使用吗

Can I create a ActiveX Control from a WPF UserControl and use in a non CLI C++ application?

本文关键字:应用程序 C++ CLI UserControl WPF 创建 ActiveX 控件 我可以      更新时间:2023-10-16

我创建了一个可以作为ActiveX控件公开的Windows窗体用户控件。现在,我正在尝试对WPF用户控件执行同样的操作。我注意到Winforms UserControl基类是ComVisible,但WPF UserControl类不是。我是想做不可能的事吗?

实现这一点的唯一方法是编写一个WPF控件,然后使用ElementHost将其嵌入到Winforms UserControl中,然后将该Winforms用户控件作为ActiveX控件公开吗?

是的,如果有可能的话,我认为ElementHost是您需要使用的方法。

这是因为WPF控件本质上是无窗口的,所有内容都通过WPF所使用的DirectX曲面以保留模式渲染。

存在用于"无窗口"ActiveX控件的接口,但提供了COM互操作。NET也没有将这些映射到WPF对象上。