winform窗體界面設計技巧-不規(guī)則、可改變大小、邊框半透明效果

winform窗體界面設計技巧-不規(guī)則、可改變大小、邊框半透明效果

ID:9947838

大小:123.50 KB

頁數(shù):9頁

時間:2018-05-16

winform窗體界面設計技巧-不規(guī)則、可改變大小、邊框半透明效果_第1頁
winform窗體界面設計技巧-不規(guī)則、可改變大小、邊框半透明效果_第2頁
winform窗體界面設計技巧-不規(guī)則、可改變大小、邊框半透明效果_第3頁
winform窗體界面設計技巧-不規(guī)則、可改變大小、邊框半透明效果_第4頁
winform窗體界面設計技巧-不規(guī)則、可改變大小、邊框半透明效果_第5頁
資源描述:

《winform窗體界面設計技巧-不規(guī)則、可改變大小、邊框半透明效果》由會員上傳分享,免費在線閱讀,更多相關內容在行業(yè)資料-天天文庫。

1、網(wǎng)上也看過很多做.NET窗體的例子,我只是把網(wǎng)上的這些東西綜合了一下,主要有下面這些特點:1、邊框是半透明的,透明度可根據(jù)需要自己更改;2、可以改變窗體的大小,改變后樣式不變;3、窗體的邊框是不規(guī)則的;4、重點解決了窗體會出現(xiàn)閃爍的問題,在窗體移動的時候也不會閃爍;5、使用方便,只要將AlphaFormPanel拖動到一般的窗體上就可以實現(xiàn)換膚;?設計思路說明:一、.NET下處理一個窗體部分透明我所知道的有兩種方法:?????1、用一張支持Alhpa通道的圖片來處理半透明,這種方式處理出來的效果會很好,甚至可

2、以用一張動態(tài)的圖片來做背景。相信有人看過那個游動的魚的程序,魚的邊緣是半透明的,就是用這種方式做的。這種方式整個窗體都是通過UpdateLayeredWindow畫出來的,如果要在上面加控件的話,所有的控件都要自己來繪制,顯然在具體的項目中用這種方式的話會大大增加開發(fā)的難度。有興趣的人可以看看這個程序:??/Files/liutao409/游動的魚.rar關鍵的代碼就是根據(jù)這種支持Alhpa通道的圖片來繪制窗體[DllImport("user32.dll",ExactSpelling=true,SetLast

3、Error=true)]publicstaticexternintUpdateLayeredWindow(IntPtrhwnd,IntPtrhdcDst,refPointpptDst,refSizepsize,IntPtrhdcSrc,refPointpptSrc,Int32crKey,ref?BLENDFUNCTIONpblend,Int32dwFlags);publicvoidSetBits(Bitmapbitmap){???if(!haveHandle)return;if(!Bitmap.IsCanon

4、icalPixelFormat(bitmap.PixelFormat)

5、!Bitmap.IsAlphaPixelFormat(bitmap.PixelFormat))thrownewApplicationException("圖片必須是32位帶Alhpa通道的圖片。");??????????IntPtroldBits=IntPtr.Zero;??????????IntPtrscreenDC=Win32.GetDC(IntPtr.Zero);??????????IntPtrhBitmap=IntPtr.Zero

6、;??????????IntPtrmemDc=Win32.CreateCompatibleDC(screenDC);??????try?????????{????????????Win32.PointtopLoc=newWin32.Point(Left,Top);????????????Win32.SizebitMapSize=newWin32.Size(bitmap.Width,bitmap.Height);????????????Win32.BLENDFUNCTIONblendFunc=newWin32.

7、BLENDFUNCTION();???????????Win32.PointsrcLoc=newWin32.Point(0,0);?????????????hBitmap=bitmap.GetHbitmap(Color.FromArgb(0));?????????????oldBits=Win32.SelectObject(memDc,hBitmap);?????????????blendFunc.BlendOp=Win32.AC_SRC_OVER;?????????????blendFunc.SourceC

8、onstantAlpha=255;?????????????blendFunc.AlphaFormat=Win32.AC_SRC_ALPHA;?????????????blendFunc.BlendFlags=0;?????????????Win32.UpdateLayeredWindow(Handle,screenDC,reftopLoc,refbitMapSize,memDc,refsrcLoc,0,refblendFunc,Win32.ULW_ALPHA);???????????}???????fina

9、lly???????????{???????????????if(hBitmap!=IntPtr.Zero)???????????????{???????????????????Win32.SelectObject(memDc,oldBits);???????????????????Win32.DeleteObject(hBitmap);???????????????}???????????????

當前文檔最多預覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當前文檔最多預覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學公式或PPT動畫的文件,查看預覽時可能會顯示錯亂或異常,文件下載后無此問題,請放心下載。
2. 本文檔由用戶上傳,版權歸屬用戶,天天文庫負責整理代發(fā)布。如果您對本文檔版權有爭議請及時聯(lián)系客服。
3. 下載前請仔細閱讀文檔內容,確認文檔內容符合您的需求后進行下載,若出現(xiàn)內容與標題不符可向本站投訴處理。
4. 下載文檔時可能由于網(wǎng)絡波動等原因無法下載或下載錯誤,付費完成后未能成功下載的用戶請聯(lián)系客服處理。