2

我目前正在开发一个允许使用插件的应用程序。其中一项功能是该插件可以公开一个设置 UI,托管应用程序将嵌入某处供用户查看。

我想知道是否有某种方法可以向我的插件界面添加一个属性,以允许插件开发人员创建 wpf 或 winforms UI 并通过此属性公开它,同时保持属性类型化?(即不使用“对象”作为属性类型),或不使用单独的属性(即 WPFUI、WinFormsUI)等。

4

1 回答 1

3

这两种技术的工作方式非常不同。我建议公开Windows.Forms.ControlFrameworkElement,但不要同时公开(至少不是来自同一个插件 API)。

如果您公开 a Control,则使用E​​lementHost提供 WPF 控件很简单。同样,aFrameworkElement可以由 Windows 窗体插件通过WindowsFormsHost提供。

我在这里的决定将更多地取决于主机应用程序的开发方式。如果您使用的是 WPF,我强烈建议您将插件公开为FrameworkElement.,因为这为您提供了更多的灵活性。如果您的主应用程序将基于 Windows 窗体,那么仅公开 a 就很Control简单。

如果您不希望这种增加的复杂性,我实际上会推荐两个单独的 API - 一个用于 Windows 窗体用户,一个用于 WPF 用户,因为这使最终用户部分的简单性保持不变。根据插件机制,这通常很容易提供。

于 2012-08-21T17:30:46.813 回答