[英]WPF control in windows forms?
我想创建一些可以同时使用WPF和Windows窗体的自定义UI控件。
这可能吗?
如果是这样,我可以在WPF中创建这些控件,还是需要使用Windows窗体控件?
还有其他考虑事项吗?
回答:
HwndSource
。 如果要编写控件库,通常最好在WPF中实现控件(因为它比WinForms强大得多),然后为其创建代理以使其易于在WinForms中使用。
代理最容易实现,如下所示:
System.Windows.Forms.Control
派生代理 HwndSource
,并将HwndSource
添加为代理的子级 或者,您可以选择不创建代理,而只是告诉WinForms用户,将控件添加到HwndSource时需要将其放入HwndSource中。
创建双重用途控件时遇到的大多数其他问题都是微不足道的或琐碎的。 例如,如果控件中具有接受图像的功能,则只需将其设计为接受WinForms的Bitmap或WPF的BitmapSource。 如果您有一个WPF控件,该控件通常仅支持RoutedEvents,请添加老式事件处理程序,以使WinForms人群感到舒适和方便。
ElementHost
允许您将WPF控件嵌入WinForms表单内, WindowsFormsHost
允许您将WinForms控件插入WPF窗口中。
两者都易于使用,并且在组成方面都存在一些小问题(您不能在WinForms元素上绘制WPF元素,等等)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.