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

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

ID:14432987

大小:123.50 KB

頁數(shù):9頁

時間:2018-07-28

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

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

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

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

3、(IntPtrhwnd,IntPtrhdcDst,refPointpptDst,refSizepsize,IntPtrhdcSrc,refPointpptSrc,Int32crKey,ref?BLENDFUNCTIONpblend,Int32dwFlags);publicvoidSetBits(Bitmapbitmap){???if(!haveHandle)return;if(!Bitmap.IsCanonicalPixelFormat(bitmap.PixelFormat)

4、!Bitmap.IsAlphaPixelFormat(bitmap.PixelFor

5、mat))thrownewApplicationException("圖片必須是32位帶Alhpa通道的圖片。");??????????IntPtroldBits=IntPtr.Zero;??????????IntPtrscreenDC=Win32.GetDC(IntPtr.Zero);??????????IntPtrhBitmap=IntPtr.Zero;??????????IntPtrmemDc=Win32.CreateCompatibleDC(screenDC);??????try?????????{????????????Win32.PointtopL

6、oc=newWin32.Point(Left,Top);????????????Win32.SizebitMapSize=newWin32.Size(bitmap.Width,bitmap.Height);????????????Win32.BLENDFUNCTIONblendFunc=newWin32.BLENDFUNCTION();???????????Win32.PointsrcLoc=newWin32.Point(0,0);?????????????hBitmap=bitmap.GetHbitmap(Color.FromArgb(0));???????

7、??????oldBits=Win32.SelectObject(memDc,hBitmap);?????????????blendFunc.BlendOp=Win32.AC_SRC_OVER;?????????????blendFunc.SourceConstantAlpha=255;?????????????blendFunc.AlphaFormat=Win32.AC_SRC_ALPHA;?????????????blendFunc.BlendFlags=0;?????????????Win32.UpdateLayeredWindow(Handle,scr

8、eenDC,reftopLoc,refbitMapSize,memDc,refsrcLoc,0,refblendFunc,Win32.ULW_ALPHA);???????????}???????finally???????????{???????????????if(hBitmap!=IntPtr.Zero)???????????????{???????????????????Win32.SelectObject(memDc,oldBits);???????????????????Win32.DeleteObject(hBitmap);????????????

9、???}???????????????

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

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

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