Mobile开发(九宫格控件)

      Mobile开发个人感觉使用九宫格的时候并不多,但有时候又不得不使用,有点类似于手机开发标志性的控件了,客户指明要用,咱们还能说啥。

      老规矩,先上控件,控件竖屏时显示为九格,横屏时显示为八格,具体需求大家可以在控件代码中自行更改,同样支持键盘和触摸操作。大家读着代码再往下看。九宫格控件

      其实,控件和代码就是自己的助手,根据自己开发的实际情况来使用,不是我有什么我都给你加上。猜测客户的真实意图,满足客户实际需求你的程序就能交工了。废话不多说了,首先介绍控件的一些要点:

      在FlexStartMenu文件中,下面这行代码取消注释将显示九宫格边框,看个人喜好

 

Code

      控件中可显示图片,文字,图片还分为选中前图片和选中后图片,控制代码如下:

Code

      加载控件,首先设置全局变量:

//纵横屏幕标志 动态更换图片用 默认纵向por 横向lan
string formSign = "por";
//屏幕显示标志 默认为9个单位图片
int viewCount = 9;
//九宫格控件
FlexStartMenu FlexMenu = new FlexStartMenu();

      给九宫格加载数据和事件,同时添加到窗体中:

Code

       响应事件:

Code

      控件属性设置,绘制控件:

Code

      完成控件绘制后,运行效果图:

 

      最后,控件并不算完整,还有不少问题,如加载图片或文字超出9个时,因为禁了滚动条,所以是显示不出来的,就算加上,也只有增加九宫格控件的高度才有可能显示,推荐大家在页面图标不多时使用,最好不超过8个图片,考虑宽屏的时候。欢迎大家探讨控件修改的方案!

标签: mobile, .net, cf
posted @ 2009-06-18 18:50 Bright-Liang 阅读(3485) 评论(28) 编辑 收藏

 回复 引用 查看   
#1楼2009-06-18 19:21 | 温景良(Jason)      
u
p

 回复 引用 查看   
#2楼2009-06-18 19:30 | 施炯      
hoho 不错 挺好的 加油!
 回复 引用 查看   
#3楼2009-06-18 20:03 | Jake.NET      
不错。
 回复 引用 查看   
#4楼2009-06-18 20:48 | zoti      
不错。
 回复 引用 查看   
#5楼2009-06-18 20:59 | Old      
支持原创...
:-)

 回复 引用 查看   
#6楼2009-06-18 21:07 | peterzb      
不错, 来支持一下, 好像 Jake.NET 也写过一个
 回复 引用   
#7楼2009-06-18 21:56 | ZOK[未注册用户]
性能不知有多慢
 回复 引用 查看   
#8楼2009-06-19 06:37 | Jake.NET      
@peterzb
not yet,正准备用c++写类似的。

 回复 引用   
#9楼2009-06-19 09:37 | panlei1322131[未注册用户]
不错,蛮好的~~~
 回复 引用 查看   
#10楼2009-06-19 09:43 | dicky      
不错, 但为什么不加滚动条呢?
 回复 引用 查看   
#11楼[楼主]2009-06-19 09:59 | Bright-Liang      
@施炯
谢谢支持

 回复 引用 查看   
#12楼[楼主]2009-06-19 10:00 | Bright-Liang      
--引用--------------------------------------------------
Jake.NET: @peterzb
not yet,正准备用c++写类似的。
--------------------------------------------------------
写完了MSN通知我哦:)

 回复 引用 查看   
#13楼[楼主]2009-06-19 10:03 | Bright-Liang      
--引用--------------------------------------------------
ZOK: 性能不知有多慢
--------------------------------------------------------
性能和UI从来都是有冲突的,你只能根据需求取个平衡点,你如果只求性能,完全可以用白板的背景嘛。

 回复 引用 查看   
#14楼[楼主]2009-06-19 10:19 | Bright-Liang      
--引用--------------------------------------------------
dicky: 不错, 但为什么不加滚动条呢?
--------------------------------------------------------
加滚动条有难度,总的来说两个方案:
1.采用系统的自动滚动条,加上后你需要重新计算右边距和底边距,因为多了滚动条,宽度会有所改变,同时更改九宫格高度,根据你现有的数据来增加相应的高度,这样,滚动条会自动出来。
2.自己写滚动条,这个考虑的就更多了,谁做出来发个啊,不要私藏哦。

 回复 引用 查看   
#15楼2009-06-19 11:38 | 老羽      
根本就不推荐加滚动条,如果多了,应该分Tab页(当然最好也是自绘)
 回复 引用 查看   
#16楼[楼主]2009-06-19 11:40 | Bright-Liang      
--引用--------------------------------------------------
老羽: 根本就不推荐加滚动条,如果多了,应该分Tab页(当然最好也是自绘)
--------------------------------------------------------
恩 多谢指点

 回复 引用 查看   
#17楼2009-06-19 13:07 | i.Posei      
看不到图。
 回复 引用 查看   
#18楼2009-06-19 13:07 | i.Posei      
确实看不到图。
 回复 引用 查看   
#19楼[楼主]2009-06-19 13:33 | Bright-Liang      
--引用--------------------------------------------------
i.Posei: 确实看不到图。
--------------------------------------------------------
不会吧...如果真看不到应该早有人叫了。

 回复 引用   
#20楼2009-06-19 14:49 | 显示内幕
楼主的排版是我见过的最好的一个
 回复 引用 查看   
#21楼[楼主]2009-06-19 15:26 | Bright-Liang      
--引用--------------------------------------------------
显示内幕: 楼主的排版是我见过的最好的一个
--------------------------------------------------------
谢谢支持。

 回复 引用 查看   
#22楼2009-06-19 15:31 | 风海迷沙      
wm中的滚动条很让人窝火啊,肯定不应该多用。
还得拿个笔在屏幕中戳来戳去的,可操作性远不如IPHONE

 回复 引用 查看   
#23楼[楼主]2009-06-19 15:48 | Bright-Liang      
--引用--------------------------------------------------
风海迷沙: wm中的滚动条很让人窝火啊,肯定不应该多用。
还得拿个笔在屏幕中戳来戳去的,可操作性远不如IPHONE
--------------------------------------------------------
哈哈,兄弟,同感啊!确实应该尽量避免滚动条。

 回复 引用 查看   
#24楼2009-06-19 20:00 | Jake.NET      
@Bright-Liang
follow me on twitter, mate.

 回复 引用 查看   
#25楼2009-06-21 21:39 | peterzb      
--引用--------------------------------------------------
Jake.NET: @peterzb
not yet,正准备用c++写类似的。
--------------------------------------------------------
不好意思,弄错了,是园友JustDI 写过一篇"基于.NET CompactFramework的九宫格控件(附源码)"
http://www.cnblogs.com/JustDI/archive/2008/07/15/1243150.html

 回复 引用 查看   
#26楼[楼主]2009-06-22 11:02 | Bright-Liang      
@peterzb
恩,收藏了,应该是这个控件的创始人。

 回复 引用 查看   
#27楼[楼主]2009-06-22 16:00 | Bright-Liang      
--引用--------------------------------------------------
Jake.NET: @Bright-Liang
follow me on twitter, mate.
--------------------------------------------------------
twitter上没找到你。