Winform使用Win7的透明效果

2022-03-05 14:33:48 字數 1275 閱讀 4389

某天閒的蛋疼的時候翻《wpf揭秘》,看到裡面提到整個windows背景都是玻璃效果的窗體。

《wpf揭秘》提供了一段**,通過乙個類glasshelper封裝了pinvoke過來的系統api。想看那段**的猛擊

這裡既然是系統api,當然就不只是wpf專用了。拆開了glasshelper,主要內容就是兩個pinvoke簽名:

dwmextendframeintoclientarea控制窗體的玻璃效果,dwmiscompositionenabled檢測系統的桌面組合功能是否開啟。margins是dwmextendframeintoclintarea需要的引數結構,表達的是視窗四周的邊框。實現全玻璃背景,其實就是將有玻璃效果的窗體邊框向內擴充套件,當margins足夠大之後,就全變成玻璃狀態了。

pinvoke簽名

[structlayout(layoutkind.sequential)]

public

struct margins

[dllimport("dwmapi.dll", preservesig = false)]

static

extern

void dwmextendframeintoclientarea(intptr hwnd, ref margins margins);

[dllimport("dwmapi.dll", preservesig = false)]

static

extern

bool dwmiscompositionenabled();

所以,要在winform裡實現玻璃效果,只要
onload

protected

override

void onload(eventargs e)

base.onload(e);

}

以及

onpaintbackgroud

protected

override

void onpaintbackground(painteventargs e)

}

通過上面的**,在重繪背景的時候清除原本要繪製的背景,將透明的窗體底層顯示出來。

效果如下

circos使用記錄 win7

本來是想要做出來這種效果的圖,然後在乙個r語言群裡面問到用這個可以做出來 安裝安了很長時間,大概加除錯有三個小時,反正具體怎麼安裝我就不說了,推薦博文 然後安裝好之後進入命令列模式 perl v然後應該是下面的樣子,win10有點問題,我在win7上裝的 需要安裝的模組 config general...

再見Win7 記錄Win7系統的安裝

本人從事機器視覺開發,一直用win7系統。近日買了個膝上型電腦,惠普的暗夜精靈3plus,早聽說這個電腦不支援win7,但是我不信邪,偏要試試。從早上10點,收到電腦,到下午6點,各種嘗試,各種搜尋,最終得出乙個結論,真的不行。安裝不了win7.文章的附圖就是最後的狀態了,雖然能裝上,但是進系統就藍...

win7 下git初級使用

今天來了解下git的基本使用 之前已經搭建好git服務,現在就來學習下git的使用.1.檔案修改與提交 計算機開始選單欄開啟git bash 切換到版本庫目錄 例如 cd g www gitserverrepository 建立乙個新目錄最為第乙個專案目錄 mkdir mylove 然後切換到改目錄...