我创建了一个可以作为ActiveX控件公开的Windows窗体UserControl。现在我试图用WPF UserControl做同样的事情。我注意到的Winforms UserControl基类是ComVisible,但是WPF UserControl类不是。我想做不可能的事吗?
实现此目的的唯一方法是编写WPF控件,然后使用ElementHost将其嵌入Winforms UserControl,然后将Winforms UserControl公开为ActiveX控件?
答案 0 :(得分:7)
是的,我认为ElementHost是您可能需要使用的方法,如果有可能这样做。
这是因为WPF控件本质上是无窗口的,所有内容都通过WPF maanges的DirectX表面以保留模式呈现。
“无窗口”ActiveX控件有接口,但.NET提供的COM互操作不会将这些接口映射到WPF对象上。