在网上经常看见有人询问Windows Mobile下的九宫格控件的做法,我曾经也多次上网搜索,但找到的大部分都是c++版本的,于是萌发了自己写一个的念头,先上图片。
选中后。
选中的效果其实是两张图片的交替结果,因为只针对了240×320这种样式,所以可能很多地方写死了,下面对部分源码的解析。
先定义一个继承自Control的类FlexStartMenu
publicclassFlexStartMenu:System.Windows.Forms.Control
定义一个选项子类,因为这个控件中的图片中包含文字,因此我没有将子项的文字画到控件当中去,如果你们有需求的话可以修改OnPain事件,添加一个画文字的方法。
子项类
public class FlexStartItem
{
/**//// <summary>
/// 显示文本
/// </summary>
public string ItemText
{
get;
set;
}
/**//// <summary>
/// 选项图片
/// </summary>
public Image Icon
{
get;
set;
}
/**//// <summary>
/// 选中时的图片
/// </summary>
public Image PressIcon
{
get;
set;
}
/**//// <summary>
/// 选项距离顶部的距离
/// </summary>
public int Top
{
get;
set;
}
/**//// <summary>
/// 选项距离左边栏的距离
/// </summary>
public int Left
{
get;
set;
}
/**//// <summary>
/// 选项编号
/// </summary>
public int Index
{
get;
set;
}
/**//// <summary>
/// 是否被选中
/// </summary>
public bool Press
{
get;
set;
}
}