WinForm中調用WPF控件
在WinForm中可以使用WPF中的控件,或者由WPF創建的自定義控件;
步驟1:創建WinForm工程;
步驟2:在WinForm工程的解決方案資源管理器中,在剛剛創建的WinForm解決方案中新建或者添加現有的WPF用戶控件工程;
步驟3:在WPF中創建自定義的控件,或者添加WPF控件到面板上;
步驟4:在WinForm面板上添加ElementHost控件(工具箱中);
步驟5:生成解決方案;
步驟6:在剛剛的ElementHost中的Child屬性中添加剛剛的WPF生成的控件;
步驟7:完成。
如果在ElementHost的Child屬性中添加了WPF生成的控件,編譯的時候出現如下錯誤:
錯誤 1 類型“System.Windows.Markup.IComponentConnector”在未被引用的程序集中定義。必須添加對程序集“System.Xaml, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089”的引用。
則要在WinForm中解決方案-> 添加引用->System.Xaml,類似的錯誤,就添加相應的引用。
如何在winform中調用WPF用戶控件里面的屬性和方法呢,如圖:
WinForm工程為test,WPF用戶控件工程為WpfControlLibrary1。
假設我們的WpfControlLibrary1中有個方法叫wpf_fun();如果我們要在test中調用的話,則需要把WPF的控件添加到WinForm中的ElementHost中,然后再需要調用的地方寫上((WpfControlLibrary1.MainControl)elementHost1.Child).wpf_fun();,其中MainControl就是你自己創建的自定義的控件的名稱,這樣就可以了。