.NET中的自绘机制
2006-07-18 11:26:21 来源:WEB开发网DrawBitmap 方法则通过利用 Bitmap 类的 MakeTransparent 将图像以透明方式显示,并会忽略其本来的格式。 bmp.MakeTransparent()
MakeTransparent 方法以图像的第一个象素的颜色作为其所属 Bitmap 对象的透明色。通过使用这个方法的重载版本,你也可以自定义透明色。而要显示一个灰化的位图,你有两种选择:第一种方式是使用一套不同的图标,就象工具条的多套图标那样。而我选择第二种方式:使用不同的伽玛值(Gamma)使图像灰化,见 Figure 8。
当你显示一个图像时,你可以利用各类图形对象来控制图像的伽玛校正值,比如画笔Pen或者画刷 Brush。你可以利用Graphics类DrawImage方法传递的ImageAttributes对象来设置或重置伽玛校正值。 通过使用零附近的伽玛值,DrawImage 就可以实现图像的灰化。如 Figure 9 所示(请注意 Print 菜单项),这不失为一个比较好的的自动灰化图像的技巧,更好的方法则是使用一个转换矩阵(参见 GDI+ SDK文档)。
Figure 9 灰化的 Print菜单项
最后一步是利用 DrawText 方法显示菜单的文本。这串要绘制的文本可以选择性地包括其热键的定义串——某个象 Shift+Ctrl+F 这样的 串。如果该菜单项的Shortcut属性已置为真,则被显示的文本将包括菜单文本及其热键两部分。DrawText方法使用了一个内部的GetEffectiveText方法来返回菜单项文本与热键文本。热键不能以显示的格式文本(键1+键2)直接使用将是无意义的。键盘热键全被整理在Shortcut枚举类型中,它的ToString方法将可以返回“CtrlO”这样没有间隔符的热键文本串。这些串中的键名都是除首字母大写,其余字母小写。所以你在任何一个大写字母(除了第一个字母)之前插入一个+分隔符,就能创建Figure 9中所示的热键文本串。
- ››Netpas加速 让非电信宽带用户流畅上网
- ››net中fckediter的图片上传时候点击\浏览服务器\出...
- ››Netmsg局域网聊天程序
- ››NetAirus指控苹果iPhone侵犯其专利
- ››Netflix 在线影视播放程序将登陆 iPhone
- ››Net中各种不同的对象创建方式的速度差异
- ››NetNewsWire 功能简单 界面快速 Reader 浏览器
- ››NET-使用Js调用WebService
- ››Net 应用程序如何在32位操作系统下申请超过2G的内...
- ››NET 4.0新特性-- Corrupted State Exceptions
- ››NET应用程序的本地化及RESGEN.exe, AL.exe介绍
- ››NetMeeting在办公网络中的应用
更多精彩
赞助商链接