我正在尝试在 WPF 应用程序中托管 ActiveX 控件。在尝试使用网络和此处的现有信息后,我遇到了死胡同。
我需要使用提供的 ActiveX 控件与UV 功率计进行通信。它们提供了一个注册和使用控件的应用程序,甚至包括一些有用的演示应用程序。如果需要,我删除了 OCX 文件并将其放在这里。您将无法与功率计交谈,但应用程序和演示仍将成功加载 ActiveX 控件。
我创建了一个简单的 Windows 窗体应用程序。我能够将 ActiveX 控件放入工具栏中,将其放入我的表单中,一切都很好。他们提供的演示应用程序也可以做到这一点。
但是,让它在 WPF 环境中工作是另一回事。无法将控件添加到工具箱并“拖动”到应用程序中。
到目前为止,我已经尝试了两种技术:
- 技术在这里找到。我可以添加对控件的引用,但随后我进入了命名空间地狱。它建议制作的 xmlns:ax 命名空间找不到信息。这是我根据对象查看器告诉我的尝试:
xmlns:ax="clr-namespace:OphirUsbXLib;assembly=Interop.OphirUsbXLib"
- 技术在这里找到。这本质上是创建一个新项目,该项目创建一个基于 Windows 窗体的库,其中包含 ActiveX 控件(yikes)。我可以添加 Windows 窗体主机,但无法访问其中的 ActiveX 控件。我可以公开控件,但我仍然不能调用方法等。这看起来不是正确的解决方案。
简而言之,我有一个 ActiveX 控件,它在 Forms 中工作得很好,但在 WPF 中工作却是一个真正的婊子。
任何见解表示赞赏!