我正試圖在WPF應用程序中託管一個ActiveX控件。嘗試在網絡上使用現有信息並在此處嘗試後,我遇到了一個死衚衕。在WPF中使用ActiveX控件
我需要使用提供的ActiveX控件來與UV power meter進行通信。他們提供了一個登錄並使用該控件的application,甚至包括一些有用的演示應用程序。我刪除了OCX文件,並在需要時輸入here。您將不會有功率計進行通話,但應用程序和演示仍將成功加載ActiveX控件。
我創建了一個簡單的Windows窗體應用程序。我能夠將ActiveX控件帶入工具欄,將它放到我的表單中,並且一切都很好。他們提供的演示應用也是如此。
但是,讓它在WPF環境中工作是另一回事。該控件無法添加到工具箱並「拖動」到應用程序中。
到目前爲止,我已經嘗試了兩種技術:
- 技術發現here。我可以添加對控件的引用,但是接下來我輸入命名空間地獄。它建議使用的xmlns:ax命名空間找不到信息。以下是我基於對象查看器告訴我的內容的嘗試:
xmlns:ax="clr-namespace:OphirUsbXLib;assembly=Interop.OphirUsbXLib"
- 找到的技巧here。這基本上是創建一個新的項目,創建一個基於Windows窗體,其中包含ActiveX控件(yikes)的庫。我可以添加Windows窗體主機,但我無法訪問其中的ActiveX控件。我可以將控件公開,但我仍然不能調用方法等。這看起來不是正確的解決方案。
總之,我有一個ActiveX控件,在Forms中工作得很漂亮,但是在WPF中工作起來卻是一個婊子。
任何見識都被讚賞!
我認爲你所描述的將會起作用(第二種方法),但是要編寫新的訪問方法來獲得ActiveX控件,看起來很痛苦。假設該控件有50個方法,例如,需要編寫50個基本上「通過」控件的新方法。我希望有更好的方法。 – BabaBooey 2010-09-08 01:43:24
採取實用的方法,只公開從WPF應用程序中實際需要使用的方法和屬性 – benPearce 2010-09-08 02:49:52