XML在.net平台下的自定义控件的应用(1)

xml|控件

 Xml全称可扩展标记语言(extensible marked language),这套语言系统由于在数据处理,跨平台等方面的独特优势,在近几年风靡全球。Xml语言系统把任何数据都作为“键”和“值”来进行处理,这一点类似于很多数据库管理系统(DBMS),而且它与具体的机器指令无关,其存储方式是纯文本文件,因此具有出色的跨平台性。另外它允许用户创建自己的数据指令系统,在这套指令系统的框架下,用户可以把所有信息转换成易于存取的数据,大大加快了开发的周期和代码的可移植性。
既然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一样,这里就不赘述了。

    作者:冯杰/ASPCool

时间: 2025-01-21 08:08:13

XML在.net平台下的自定义控件的应用(1)的相关文章

XML在.net平台下的自定义控件的应用

xml|控件   Xml全称可扩展标记语言(extensible marked language),这套语言系统由于在数据处理,跨平台等方面的独特优势,在近几年风靡全球.Xml语言系统把任何数据都作为"键"和"值"来进行处理,这一点类似于很多数据库管理系统(DBMS),而且它与具体的机器指令无关,其存储方式是纯文本文件,因此具有出色的跨平台性.另外它允许用户创建自己的数据指令系统,在这套指令系统的框架下,用户可以把所有信息转换成易于存取的数据,大大加快了开发的周期和

XML在.net平台下的自定义控件的应用(2)

xml|控件 第二步,就是加入XML特性注意,任何xml文档在其被处理之前最好先进行有效性验证,提供验证一般有两种重要的途径.其一就是提供DTD(文档类型定义),实际上就是让用户提供指令集,然后在xml文档加载的时候对其进行有效性分析,看是否有无效指令,简单说就是创建一个编译环境:另外一个就是提供一个所谓的schema..其作用跟DTD完全一样,只是在表现形式上好于DTD,因为它本身也是一个XML文档.这里我采用了schema的形式,当然了,读者用兴趣也可以将其替换问相应的DTD版本.下面

XML在.net平台下的自定义控件的应用(3)

为了更加清晰的说明上面的代码,我们这里举一个例子,相信读者一目了然: <menus xmlns='x-schema:Menu.xdr'> <menu id='menuBar1'> <topmenu id="xjtu" text="xjtu" isparent="true" linkurl="xjtu"></topmenu> <submenu id="sina&qu

Office文件的奥秘——.NET平台下不借助Office实现Word、Powerpoint等文件的解析(一)

原文 http://www.cnblogs.com/mayswind/archive/2013/03/17/2962205.html   [题外话] 这是2010年参加比赛时候做的研究,当时为了实现对Word.Excel.PowerPoint文件文字内容的抽取研究了很久,由于Java有 POI库,可以轻松的抽取各种Office文档,而.NET虽然有移植的NPOI,但是只实现了最核心的Excel文件的读写,所以之后查了很多资料才实 现了Word和PowerPoint文件文字的抽取.之后忙于各种事情

Android平台下利用zxing实现二维码开发

现在走在大街小巷都能看到二维码,而且最近由于项目需要,所以研究了下二维码开发的东西,开源的二维码扫描库主要有zxing和zbar,zbar在iPos平台上应用比较成熟,而在Android平台上主流还是用zxing库,因此这里主要讲述如何利用zxing进行二维码开发. 1.如何将zxing的Android源码导入工程. 在导入zxing的android源码之前,先去官方下载zxing的源码:http://code.google.com/p/zxing/downloads/list. 我这里下载的是

vs2008-VS搭配QT,x64平台下为挖三维编的dll,怎么调试

问题描述 VS搭配QT,x64平台下为挖三维编的dll,怎么调试 VS搭配QT,x64平台下为挖三维编的dll,怎么调试?新手,试过用挖三维打开调试,但是没看到界面在哪里,请懂得QT的前辈回答,谢谢! 解决方案 https://github.com/Vaa3D/Vaa3D_Wiki/wiki/Build-Vaa3D-on-Linux

不同WINDOWS平台下磁盘逻辑扇区的直接读写

不同WINDOWS平台下磁盘逻辑扇区的直接读写 关键字:VWIN32.中断.DeviceIoControl 一.概述 在DOS操作系统下,通过BIOS的INT13.DOS的INT25(绝对读).INT26(绝对写)等功能调用实现对磁盘逻辑扇区或物理扇区的读写是很方便的,C语言中还有对应上述功能调用的函数:biosdisk.absread和abswrite等.但在WINDOWS操作系统下编写WIN32应用程序时却再也不能直接使用上述的中断调用或函数了.那么,在WINDOWS操作系统下能不能实现磁盘

qt-vs2012平台下将工具集改成VS2010 V100之后生成出错

问题描述 vs2012平台下将工具集改成VS2010 V100之后生成出错 vs2012平台下新建QT application工程,将工具集改成VS2010 V100之后生成出错,情况如下:1>qtmaind.lib(qtmain_win.obj) : error LNK2038: 检测到"_MSC_VER"的不匹配项: 值"1700"不匹配值"1600"(moc_rr.obj 中) 解决方案 工程属性->配置属性-> 清单工具

usb-android 平台下可否根据VID/PID配置赋予路径权限

问题描述 android 平台下可否根据VID/PID配置赋予路径权限 请问一下,USB设备(假设VID=0X05A9PID=0X1234)插入Android后,USB路径可能是 /dev/bus/usb/003/010 但是这个路径没有写权限,在系统集成的时候怎么配置指定VID/PID的路径读写权限呢 ? 比较笨的方法是ueventd.rc文件里面分别列出可能的path,但是这样就把其他VID PID的路径也给了权限,存在风险./dev/bus/usb/001/0* 0666 root usb