我們知道,在
wpf介面上新增
winform
的控制項需要使用
windowsformhost
類。而在
winform
介面上新增
wpf控制項該如何做呢?有沒有類似的類呢?明顯是有的,
elementhost
就是為了在
winform
應用程式中嵌入
wpf元素而定義的。它繼承自system.windows.forms.control,是乙個
winform
控制項,但它知道如何顯示
wpf內容。
接下來演示如何使用
elementhost
來顯示乙個
wpf控制項——
button
,並與winform
中button
的顯示作個簡單的對比(
xp環境)。
1.建立乙個標準的
winform
工程,從工具欄中找到「wpf interoperability」專案,選擇其中的
elementhost
,將其拖拽到
form
中,如圖
1所示:
圖1 拖拽elementhost
到form中2.
簡單的調整一下
elementhost
的大小,因為預設情況下,
wpf控制項會佔據所有給予
elementhost
的空間。此外,我們檢視一下工程的
references
,可以看到,拖拽
elementhost
後,會自動新增必要的
wpf程式集(
presentationframework
、presentationcore
、windowbase
等)。3.
接下來我們拖拽乙個
winform button
到form
中,修改
button
的內容為「
button in winform
」,如圖
2所示:
圖2 新增winform button
4.wpf
控制項只能在後台**中新增到
elementhost
中,我們在窗體的建構函式中建立
wpf控制項,如下面的**片段所示:
public partial class form1 : form
}elementhost
的child
屬性為uielement
型別,因此,它可以被設定成任何
uielement
物件。5.
按下f5
,執行winform
應用程式,
wpf的
button
控制項和winform
的button
控制項顯示如圖
3所示。可以看出,兩個
button
的預設字型明顯不同。
圖3 兩個button
的顯示我們知道,在
wpf介面上新增
winform
的控制項需要使用
windowsformhost
類。而在
winform
介面上新增
wpf控制項該如何做呢?有沒有類似的類呢?明顯是有的,
elementhost
就是為了在
winform
應用程式中嵌入
wpf元素而定義的。它繼承自system.windows.forms.control,是乙個
winform
控制項,但它知道如何顯示
wpf內容。
接下來演示如何使用
elementhost
來顯示乙個
wpf控制項——
button
,並與winform
中button
的顯示作個簡單的對比(
xp環境)。
1.建立乙個標準的
winform
工程,從工具欄中找到「wpf interoperability」專案,選擇其中的
elementhost
,將其拖拽到
form
中,如圖
1所示:
圖1 拖拽elementhost
到form中2.
簡單的調整一下
elementhost
的大小,因為預設情況下,
wpf控制項會佔據所有給予
elementhost
的空間。此外,我們檢視一下工程的
references
,可以看到,拖拽
elementhost
後,會自動新增必要的
wpf程式集(
presentationframework
、presentationcore
、windowbase
等)。3.
接下來我們拖拽乙個
winform button
到form
中,修改
button
的內容為「
button in winform
」,如圖
2所示:
圖2 新增winform button
4.wpf
控制項只能在後台**中新增到
elementhost
中,我們在窗體的建構函式中建立
wpf控制項,如下面的**片段所示:
public partial class form1 : form
}elementhost
的child
屬性為uielement
型別,因此,它可以被設定成任何
uielement
物件。5.
按下f5
,執行winform
應用程式,
wpf的
button
控制項和winform
的button
控制項顯示如圖
3所示。可以看出,兩個
button
的預設字型明顯不同。
圖3 兩個button
的顯示
在winform嵌入外部應用程式
應朋友要求,需要將乙個第三方應用程式嵌入到本程式winform視窗,以前在vb6時代做過類似的功能,其原理就是利用windows api中findwindow函式找到第三方應用程式控制代碼,再利用setparent函式,將該控制代碼設定為本視窗的子視窗。網上搜尋大部分都是利用system.diagn...
在WinForm應用程式中嵌入WPF控制項
我們知道,在 wpf介面上新增 winform 的控制項需要使用 windowsformhost 類。而在 winform 介面上新增 wpf控制項該如何做呢?有沒有類似的類呢?明顯是有的,elementhost 就是為了在 winform 應用程式中嵌入 wpf元素而定義的。它繼承自system....
在WinForm應用程式中嵌入WPF控制項
我們知道,在 wpf介面上新增 winform 的控制項需要使用 windowsformhost 類。而在 winform 介面上新增 wpf控制項該如何做呢?有沒有類似的類呢?明顯是有的,elementhost 就是為了在 winform 應用程式中嵌入 wpf元素而定義的。它繼承自system....