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