內嵌WinForm元件的WPF無邊框窗體的實現方式

2021-10-13 12:48:22 字數 589 閱讀 5837

在內嵌winform窗體時,不能通過直接設定windowstyle=「none」和allowtransparency="true"來設定無邊框,如果採用這種方式設定無邊框,則winform元件無法顯示。

若只設定windowstyle=「none」,則會有難看的灰色邊框,並使得窗體能夠隨意擴充套件大小。

檢索後發現可以通過設定windows窗體格式的方式來設定無邊框,使用user32.dll中的setwindowlong函式。

**為:

using system.runtime.interopservices;

[dllimport("user32.dll", callingcovention = callingconvention.winapi)]

public static extern void setwindowlong(intptr handle, int oldstyle, int newstyle);

在loaded函式內

intptr hwnd = new windowinterophelper(this).handle;

setwindowlong(hwnd, 0xfffffff0, 0x16010000);

將Office內嵌的自己的WinForm程式

因小組考試系統開發需要,以前整理過office內嵌到自己的winform程式裡,有需要的可以看下。其實思路就是把office軟體當做我們winform程式窗體的子窗體,呼叫幾個系統api就行了,這裡實現的在winform裡開啟,修改,儲存word,excel,ppt文件的需要。想實現更多功能的可以再...

WPF與Winform的選擇

最近公司計畫對erp系統全面公升級,現有的erp是簡單的bs架構系統打算改版成cs。平時如自己寫一些工具,小應用都是用winform就足夠。但是介面總是很難看,據了解wpf在這一方面會強一些。因為之前對wpf並不熟悉,先花了點時間了解一下,和winform做了一下對比。以下大概的整理,未做詳細整理。...

wpf和winform的那點區別

一提起winform和wpf有啥不同,可能大部分人都會想到wpf擁有漂亮的介面。wpf中也可以使用winform,大部分情況下,都沒有任何問題,極少的情況下,可能會出現問題。我們就來看一下 void floatwindow loaded object sender,routedeventargs e...