昨天PM说要把所有按钮做到一个Bar上面,为了满足部门老大提出的效果。我就建议说意见把按钮都放在ControlBar上面了,那我就尝试把ControlBar做成透明的。
今天中午没有吃饭,到目前终于明白要实现这个功能的大致方向:
在网上查找下资源,觉得实现的方式大概两种:
第一种,实现方式就是整个窗口都透明化,这样好像只用处理整个窗体的某些属性即可;
第二种,完全利用我们在界面上采用的一些图片来实现所谓的透明效果。譬如说PING图片在制作的时候可以加入透明化,然后利用GDI+显示出来基本就可以透明了。
两种方案我先试验第二种,你们可以运行我发给你们的可执行文件查看效果。当Camera中有视频显示的是并ControlBar的透明效果并没有受到影响。
实现原理:
1. 按钮和背景全部是PNG图片。我在Photoshop中看过背景图和其他按钮的图在画画的时候可以设置的特效里面有Transparence这个选项;我自己还话一副同样显示出来也可以透明;
2. 要用到GDI+,否则做不到如此丰富的效果;
第一种方案还没有试验。
现记录做窗口透明化的处理方法和例子,什么是PM和老大的要求变了,可以回来再参考这些资料做改变。
搜索关键字 Alpha Window
1.按钮透明化;
http://www.codeproject.com/KB/buttons/TransButtonDemo.aspx
2.像Vista风格的窗口(Glass效果)
http://www.codeproject.com/KB/dialog/VisitaLookingDialog.aspx
3.整个窗口透明化
http://www.codeproject.com/KB/dialog/wintrans1.aspx
4.整个窗口透明化
http://www.codeproject.com/KB/dialog/clayeredwindowhelperst.aspx
5.按钮效果有点像Vista媒体中心里面的效果,底部有光影变换;
http://www.codeproject.com/KB/buttons/CMCButton.aspx
6.Control透明度设置
http://www.codeproject.com/KB/miscctrl/GradientPanel.aspx
7.特制的透明Bar;(目前为我的选取方案,当然用到自己的工程中需要做修改)
http://www.codeproject.com/KB/toolbars/xpbar.aspx
在自己的工程中加入参考代码,简单实现了一个透明Bar,然后就向上咨询是否需要这种效果。如果是,我就开始按照这种思路做了。
效果图如下