最近业余时间想做一个WM系统九宫格那样的效果出来,在网上找到一篇博文,链接:http://www.cnblogs.com/JustDI/archive/2008/07/15/1243150.html
看完文章后受了启发,决心自己也搞一个。JustDI 提供的思路是做一个控件,根据位置画图,因为我对GDI+没接触过,也没有编过控件,很多原理不清楚,所以想换其他的方式实现类似的效果。想了一下想到了一个最原始的方式,开始动手了。

开发平台: VS2008 + Windows Mobile 6 Standard SDK

     项目: smartphone application .net2.0

设计思路: 现在SP手机基本都是QVGA(320*240)的分辨率,九宫格菜单最多显示9个菜单项,而上下左右移动方向键就两种效果,一个是两个菜单项互换,一个是上下翻页。所以我就在控件中放入9个固定位置的PictureBox和Label控件,只需要在后台实现上面两种效果就可以了。(省去了自己绘图的工作,水平有待提高啊~~)

类名

描述

GridMenuItem

单个菜单项

GridMenuControl

菜单容器控件

 

一个菜单项有这样一些属性:默认图标,选中图标,文字,按键点击该菜单项还会调用某个方法。

GridMenuItem

     

菜单容器控件有一个属性存放所有菜单项。然后两个方法,ReDrawSelectedItem()用于实现两个菜单项互换效果ReDrawAll()用于实现上下翻页效果

部分代码:

Code

 

下面是测试的效果截图

 

这个是我觉得比较简单的实现模仿九宫格菜单的一种方式,但是目前有几个缺陷,不能自适应分辨率,不能放到控件工具箱。

还是希望以后有空做一个自己控制绘图的宫格菜单出来,至少还要支持12宫格和PPC系统的。

GridMenuControl源代码

 

本人水平有限,欢迎交流经验和结交有相同爱好的码友。

 

posted on 2008-11-01 09:33  犇牛牛  阅读(1795)  评论(4编辑  收藏  举报