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

时间:2011-05-25 23:44:19

标签: c++ wpf winforms activex

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

实现此目的的唯一方法是编写WPF控件,然后使用ElementHost将其嵌入Winforms UserControl,然后将Winforms UserControl公开为ActiveX控件?

1 个答案:

答案 0 :(得分:7)

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

这是因为WPF控件本质上是无窗口的,所有内容都通过WPF maanges的DirectX表面以保留模式呈现。

“无窗口”ActiveX控件有接口,但.NET提供的COM互操作不会将这些接口映射到WPF对象上。