Размещение страницы WPF, расположенной в плагине DLL - PullRequest
1 голос
/ 22 января 2012

Я разрабатываю программу WPF, которая будет использовать архитектуру DLL-плагинов.Хост-приложение больше "хром", чем контент.Он отвечает за обеспечение единообразного внешнего вида, а также за предоставление некоторых функций, общих для всех плагинов (таких как кнопка «Проверить наличие обновлений»).

Однако я планирую, что сторонние разработчики будуткод плагинов.Как таковые, они должны будут добавить специфическую функциональность плагина.Я спроектировал хост-приложение так, чтобы оно выделяло вкладку (или две, если плагин запрашивает ее), и позволит плагину заполнить эту вкладку своими собственными кнопками, списками, т. Д., Что затем вызовет соответствующуюкод в плагине.

Вроде как MDI, за исключением того, что кнопки будут размещаться на вкладке хост-приложения, но будут вызывать события в плагине.

Мне нужна помощь в выяснениикак реализовать этот дизайн.Что мне, как хост-программисту, нужно сделать для поддержки этого (например, загрузить плагин и заполнить вкладку)?Что нужно сделать разработчикам плагинов, чтобы

  • "Встраивать" их WPF в мою вкладку
  • Поймать события, генерируемые их встроенными элементами управления
  • Получить это вDLL

Ответы [ 2 ]

3 голосов
/ 22 января 2012
2 голосов
/ 22 января 2012

Многое из стандартного материала, необходимого для реализации архитектуры плагинов, можно найти в Managed Extensibility Framework: http://mef.codeplex.com/

Что касается кнопок хостинга на хосте, которые будут вызывать события на странице клиента, вы можете достичь этого, выполнив определенную команду с страницей клиента, установленной в качестве цели. Вот пример выполнения команды «Вставить» на странице с именем «hostedWpfPageControl»:

ApplicationCommands.Paste.Execute(null, this.hostedWpfPageControl);
...