我目前正在开发一个允许使用插件的应用程序。其中一个功能是该插件可以公开一个设置 UI,托管应用程序会将其嵌入到某处供用户查看。
我想知道是否有某种方法可以将属性添加到我的插件界面,该属性将允许插件开发人员创建 wpf 或 winforms UI 并通过此属性公开它,同时保持属性类型? (即不使用“对象”作为属性类型),或不使用单独的属性(即 WPFUI、WinFormsUI)等。
最佳答案
这两种技术的工作原理非常不同。我建议要么公开 Windows.Forms.Control或 FrameworkElement ,但不是两者(至少不是来自相同插件 API)。
如果您公开一个 Control
,则使用 ElementHost 提供 WPF 控件很简单。 。同样,Windows 窗体插件可以通过 WindowsFormsHost 提供 FrameworkElement
.
我在这里的决定更多地取决于主机应用程序的开发方式。如果您使用 WPF,我强烈建议将插件公开为 FrameworkElement
,因为这为您提供了更多的灵活性。如果您的主应用程序将基于 Windows 窗体,那么只需公开 Control
就很简单。
如果您不希望增加这种复杂性,我实际上会推荐两种单独的 API - 一种用于 Windows 窗体用户,一种用于 WPF 用户,因为这可以使最终用户保持简单性。根据插件机制,这通常相当容易提供。
关于c# - 如何允许插件通过公共(public)属性公开 WPF 或 WindowsForms 控件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12059968/