WPF承載winform控件

主要是最近的WPF項(xiàng)目中,用到了別的公司的東西,需要調(diào)用dll來使用該公司的控件。

在WPF中使用WinForm主要是以下幾個(gè)步驟:

  1. 添加引用
    如果說需要在xaml中使用WinForm的控件,那么需要用到的是
  • WindowsFormsIntegration
  • System.Windows.Forms
  1. 添加了第一個(gè)引用之后,就能夠在xaml中使用WindowsFormsHost標(biāo)簽。
  2. 添加了第二個(gè)引用之后,你需要在xaml中聲明xmlns,然后就能使用WinForm的控件了。
xmlns:WinFormControls="clr-namespace:System.Windows.Forms;assembly=System.Windows.Forms"`
    <WindowsFormsHost>
      <WinFormControls:Label Text="Hello World"/>
    </WindowsFormsHost>

需要注意的是:

  1. WinForm會(huì)把你的整個(gè)層面給遮掉,就算你用ZIndex也沒用。蓋住就蓋住了,不顯示下面的東西
  2. 引用的第三方dll,需要在一開始的時(shí)候,使用Assembly.LoadFrom加載。不然中間可能運(yùn)行到一半的時(shí)候報(bào)錯(cuò)RE。

WinForm的覆蓋問題,解決的方法也是很無語的。解鈴還須系鈴人,WindowsFormsHost遮掉的東西,還是用WindowFormsHost顯示。原理就是,設(shè)置好大小,相互覆蓋(來啊,互相傷害?。?。
然后,WindowFormsHost除了放WinForm的控件之外,也可以放WPF的控件。就像這樣:

<WindowsFormsHost >
  <ElementHost>
    <StackPanel>
      //這里放WPF的東西,比如這個(gè)StackPanel
      //ElementHost就是承載WPF控件的東西
    </StackPanel>
  </ElementHost>
</WindowsFormsHost>

上面的就是套在WPF中的WinForm套用WPF的方法(繞口令~~~)。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

  • 目錄 什么是WPF? WPF的歷史? 為什么要用WPF及WPF作用 WPF與winForm區(qū)別? 什么是WPF? ...
    灬52赫茲灬閱讀 6,088評論 2 11
  • 此文章將記錄我在C# Winform 開發(fā)過程中遇到的問題及相關(guān)知識技術(shù)點(diǎn) ,方便自己以后查閱..... 博客原文...
    遇見_c256閱讀 3,633評論 1 21
  • 這個(gè)秋天,愿時(shí)光多一些明媚,歲月靜好,你亦無恙。 秋總是不經(jīng)意間來到身邊,小院里的香樟樹一年四季都有落葉凋零,沒有...
    任亞閱讀 306評論 0 0
  • 男同志下班回來跟我說, 我今天竟然就穿著哪吒的T恤就去上班了!—— T恤舊得早該不要不要的了,哪吒臉都洗成包公臉了...
    S貓閱讀 478評論 0 1
  • 門店銷售服務(wù)六步曲的第一步---迎賓: 迎賓要點(diǎn):肢體直立,兩手自然下垂或交叉,面帶親和,輕輕微笑,語氣平和,吐字...
    思念的詩閱讀 1,950評論 0 1

友情鏈接更多精彩內(nèi)容