详解使用C#制作不规则窗体的方法
以前想制作不规则窗体,大多使用API函数来实现,在C#中,也可以不使用API函数照样能制作出漂亮的不规则窗体,下面就介绍一下相关方法。
1、首先准备一张BMP格式的图片
图片的形式随意,但注意图片的背景最好设置成C#中提供的一些色系,如白色(#FFFFFF\white)、黑色(#000000\black)、黄色(#FFFF00\yellow)、蓝色(#0000FF\blue)、红色(#FF0000\red)或绿色(#00FF00\green)等。本文使用如下形式的图片,其背景为白色。
2、创建Windows程序
打开Visual studio 2005,当然,这里使用的是VS2005,具体是什么版本无所谓关键是方法。创建一个windows应用程序,项目起名为abnormalwin,如下图所示:
设置完成后单击【确定】,系统自动创建好一个默认的界面,并自动命名为form1。
3、设置相关属性
(1)将 FormBorderStyle 属性设置为 None;
(2)将窗体的 BackgroundImage 属性设置为前面准备好的BMP图片;
(3)将 TransparencyKey 属性设置为位图文件的背景色,本例中为白色。
如果你的电脑颜色设置低于24位,现在就可以产生相应的效果了,但是如果你的电脑颜色高于24位,就不会产生任何效果,这怎么办呢?有人想办法用以下方式解决了这个问题。
4、定义一个图片处理类BitmapRegion
(1)在解决方案项目abnormalwin上右击后,选择【添加】—>【类】,如下图所示操作:
(2)在弹出的添加新项窗体中,输入类的名称BitmapRegion.cs,然后单击【添加】。
微信搜索“优雅的代码”关注本站的公众号,或直接使用微信扫描下面二维码关注本站公众号,以获取最新内容。
个人成长离不开各位的关注,你的关注就是我继续前行的动力。
评论内容只代表网友观点,与本站立场无关!
[回复] 6 楼 11 打分:100分 发表时间:2011-11-21
· good
[回复] 5 楼 Oldtiger 打分:100分 发表时间:2010-10-27
· 刚刚测试,在2008下可以运行,效果也还不错,只是除了速度慢之外,边界也比较粗糙,有些地方好像未能完全透明
[回复] 4 楼 admin 打分:100分 发表时间:2010-08-20
· 回复 2 楼(wenwen):给出的是VS2005中的例子,所以在2003下无法运行,你要做适当转换修改。
[回复] 3 楼 常州议事 打分:85分 发表时间:2010-08-18
· 运行速度有点慢
[回复] 2 楼 wenwen 打分:85分 发表时间:2010-08-17
· 你给的那个源代码好像有点问题,在2003中无法运行啊
[回复] 1 楼 bucuo 打分:100分 发表时间:2010-08-16
· 哈哈,创建的那个类的问题终于知道了,
比网上的要详细,谢谢啦。