既然XML这么好,那它到底是什么样子的呢?最近笔者因为课题的需要,开发了一个基于.net平台下的menu控件,并且加入了XML特性。制作的步骤如下:
第一步:制作一个.net平台下的menu控件
.net平台下面的自定义控件的工作原理如下:控件对应于一个类(class),控件的所有属性通过类的成员变量来暴露,而控件的方法对应于class的成员函数。在控件被加载的手,系统会调用class的render方法,制作控件的时候,应该重载(override)这个render方法,使得在控件被加载的那 一刻,控件可以自己“绘制”自己,一般来说,在render方法里面要将关于控件界面绘制的那些Javascript文件放入到输出流中。
由于这里重要是讲解后面XML的应用,所以这里只是把自定义控件的原来简要说明一下,下面罗列出相关对象,属性,方法。
整个menu控件分为Topmenu,Submenu,Childrenmenu,MenuItem四个对象,其相应的信息为:
控件属性:
ID:标识控件名字
MenubarHeight:菜单拦的高度
MenubarWidth::菜单拦的宽度
BorderWidth::边框宽
AutoDropdown:true表示自动下拉,false表是单击鼠标下拉
DropdownDelay:下拉时间
Menufont:字体
LocationX:菜单的x位置
LocationY:菜单的y位置
XmlFile:XML文件
XmlStream:XML流
topmenu对象属性:
ID:同上
Text:顶层菜单的文本
Isparent:true表示有下一级菜单,否则为false(false默认)
Islink:需要用事件处理用true,否则false(false默认);
Bgcolor:背景色
Forecolor:前景色
HoveredBackcolor:鼠标放在上面的颜色
Topmenufont:字体
Linkurl:当isparent为false才有效,表示连接的url
Borderwidth:topmenu的边框宽
Itemheight:下一级菜单的高度(必须isparent为true才有效)
Itemwidth: 下一级菜单的宽度(必须isparent为true才有效)
Submenus:含有下一级菜单的数组列表
Submenu,Childrenmenu 和MenuItem的所有属性跟上面Topmenu一样,这里就不赘述了。