C# 制作不规则窗体的两种解决方案
冒著被拍磚的危險,投放到首頁。C#制作不規則窗體應該又是一個老生常談的問題了,可能很多老鳥會帶BS的眼神,那么請老鳥們視該文章如浮云吧。
制作不規則窗體,本例采用圖片背景形式,這也是通常的思路。以前也做過類似的案例,但都不深入,這次項目中需要用到,順便理了下思路,找到另一種比較簡單的方法,下面介紹下兩種解決方案。
第一種:也是大家管用的一種方法,實現步驟如下
? ? ?①:準備一張bmp的圖片,圖片的背景最好為一種簡單純色,方便窗體指定透明色,例如下面圖片:
(圖片背景為白色,邊框是園子的css效果,不能傳bmp,jpg代替)
②:在VS里面新建窗體,窗體FormBorderStyle:None
③:找到窗體的TansparencyKey,將它設置為你背景圖片的背景色(如白色)
OK,第一種設置到這里就可以了,運行效果如下:
沒有任何問題,能夠打到不規則窗體的的效果,但是你會發現,如果你的圖片背景顏色和圖片主內容很接近,或者存在共同顏色的時候,難免會出現鋸齒,部分地方透明模糊等情況,那么如何解決這個問題呢,看第二種解決方案
第二種解決方案:(采用透明Png圖片格式)
上一種方法用的是bmp格式,這次采用png格式,大家知道png是支持圖片背景透明的。準備圖片如下:
(為了好看一點,直接接了個圖標,證明是png格式,而且背景是透明的,呵呵)
①:同樣創建一個窗體背景圖片指定png格式的圖片
②:同樣設置窗體的FormBorderStyle:None
③:不同點來了哈,這里指定好了圖片png后,窗體的大小可以隨便設置(當然你要保證能顯示出全部png圖片),之后設定窗體的BackColor:Control(這是默認的,當然你也能修改),最后設定TansparencyKey等于你的BackColor的顏色即可,這樣就可以完整的顯示出png圖片了
可以看的出,兩種解決方案其實大同小異,不同的是第二種方案靈活性比較高一點,能夠實現些很好的效果,而不會影響圖片質量(毛邊等)。
Show一下花了一天做的一個圖片。
轉載于:https://www.cnblogs.com/qidian10/archive/2011/07/28/2120445.html
總結
以上是生活随笔為你收集整理的C# 制作不规则窗体的两种解决方案的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux中一些常用的很巧妙的命令
- 下一篇: c# char unsigned_dll