Использование элемента управления ActiveX в WPF - PullRequest
1 голос
/ 08 сентября 2010

Я пытаюсь разместить элемент управления ActiveX в приложении WPF.После попытки использовать существующую информацию в Интернете и здесь я зашел в тупик.

Мне нужно использовать предоставленный элемент управления ActiveX для связи с УФ-измерителем мощности .Они предоставляют приложение , которое регистрирует и использует элемент управления и даже включает некоторые полезные демонстрационные приложения.Я удалил файл OCX и поместил его здесь , если это необходимо.У вас не будет измерителя мощности, с которым можно разговаривать, но приложение и демоверсии все равно успешно загрузят элемент управления ActiveX.

Я создал простое приложение Windows Forms.Мне удалось перенести элемент управления ActiveX на панель инструментов, поместить его в форму, и все в порядке.Предоставляемые ими демонстрационные приложения также делают это.

Однако, заставить работать это в среде WPF - это уже другая история.Элемент управления нельзя добавить на панель инструментов и «перетащить» в приложение.

До сих пор я пробовал две техники:

  1. Техника найдена здесь .Я могу добавить ссылку на элемент управления, но затем я вхожу в ад пространства имен.Пространство имен xmlns: ax, которое оно предлагает создать, не может найти информацию.Вот моя попытка, основанная на том, что мне говорит средство просмотра объектов: xmlns:ax="clr-namespace:OphirUsbXLib;assembly=Interop.OphirUsbXLib"
  2. Техника найдена здесь .По сути, это создание нового проекта, который создает библиотеку на основе Windows Forms, которая содержит элемент управления ActiveX (yikes).Я могу добавить узел Windows Forms, но не могу получить доступ к элементу управления ActiveX внутри.Я могу сделать элемент управления общедоступным, но я все еще не могу вызывать методы и т. Д. Это не похоже на правильное решение.

Короче говоря, у меня есть элемент управления ActiveX, который прекрасно работает в формах, нонастоящая сука, чтобы начать работать в WPF.

Любое понимание приветствуется!

1 Ответ

2 голосов
/ 08 сентября 2010

В этой ситуации я хотел бы рассмотреть возможность создания пользовательского элемента управления WinForms, который оборачивает элемент управления ActiveX, который вы пытаетесь использовать.

Вы можете сделать открытые свойства и методы, которые предоставляют каждое из обязательных свойств и методов для элемента управления ActiveX, и затем разместить этот WinForms UC в элементе управления WPF WinFormsHost.

Я уже сделал нечто похожее на это, наоборот, разместив WPF UserControl в WinForms UserControl, затем разместив его в форме VB6 в унаследованном приложении.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...