[英]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.