我创建了一个可以作为ActiveX控件公开的Windows窗体用户控件。现在,我正在尝试对WPF用户控件执行同样的操作。我注意到Winforms UserControl基类是ComVisible,但WPF UserControl类不是。我是想做不可能的事吗?
实现这一点的唯一方法是编写一个WPF控件,然后使用ElementHost将其嵌入到Winforms UserControl中,然后将该Winforms用户控件作为ActiveX控件公开吗?
是的,如果有可能的话,我认为ElementHost是您需要使用的方法。
这是因为WPF控件本质上是无窗口的,所有内容都通过WPF所使用的DirectX曲面以保留模式渲染。
存在用于"无窗口"ActiveX控件的接口,但提供了COM互操作。NET也没有将这些映射到WPF对象上。