在使用.net平台开发软件时是否对千篇一律的界面外观有审美疲劳,要想更改外观,无外乎以下两种途径,使用第三方界面库,第三方的.net界面库已经很丰富了,但是要是对已有系统呢,重新开发?这样成本就很高,费时费力,且一般的界面库功能是丰富,但是一般很耗资源,且有bug也没办法修复,只有等官方修复。还有一种方式就是自己动手制作自己需要样式的界面外观,这样可以解决上述的一些问题,且能做出最适合自己的组件。
自定义整个界面外观涉及的控件很多,这里只挑几种,最常见的就是菜单的绘制了,菜单包括一下元素:
菜单栏,菜单项,图片区域,选择框,分隔符等
需要用到的技术有,GDI+(用于绘制外观),反射(用于取得受保护或私有的函数属性等)
1. 自定义菜单栏
菜单栏可以从MenuStrip继承
public class MenuStripExtend : MenuStrip { }
需要重写的函数有OnPaint、OnMenuActivate
1)OnPaint是在需要重绘时调用的,用于绘制菜单的外观,可以绘制图片,也可以使用渐变来绘制,使得具有层次感,
代码比较简单就不列举