我正在尝试在WPF应用中托管ActiveX控件。在尝试使用网络上的现有信息之后,我已经走到了尽头。
我需要使用提供的ActiveX控件与UV power meter进行通信。它们提供application注册和使用控件,甚至包括一些有用的演示应用程序。我删除了OCX文件并在需要时将其here。您将无法与功率计通信,但应用和演示仍将成功加载ActiveX控件。
我创建了一个简单的Windows窗体应用程序。我能够将ActiveX控件带入工具栏,将其放入我的表单中,一切都很好。他们提供的演示应用程序也是如此。
然而,让它在WPF环境中工作是另一回事。控件无法添加到工具箱中并“拖动”到应用程序中。
到目前为止,我尝试了两种技术:
xmlns:ax="clr-namespace:OphirUsbXLib;assembly=Interop.OphirUsbXLib"
简而言之,我有一个在Forms中运行得很漂亮的ActiveX控件,但却是在WPF中工作的真正婊子。
非常感谢任何见解!
答案 0 :(得分:2)
在这种情况下,我会考虑制作一个WinForms用户控件,它包装你试图使用的ActiveX控件。
您可以创建公开属性和方法,公开ActiveX控件上的每个必需属性和方法,然后在WPF WinFormsHost控件中托管此WinForms UC。
我已经做了类似的事情,相反,在WinForms UserControl中托管WPF UserControl,然后在遗留应用程序中的VB6表单上托管它。