前言
1、 http://www.silverlight.net/(官方站点)
2、 http://silverlight.cn/index.php?q=node/516 (TerryLee的系列文章)
3、 http://blog.joycode.com/scottgu/archive/2008/02/29/114918.aspx(Scott Guthrie的系列文章)
- 系统范围
- 系统设计
- 类设计
- Xml设计
一、系统范围
首先,我们对系统要完成的功能进行定义,在这里,以我想像中的智能表单所具备的基本功能有如下几点:
• 图形化的方式显示表单
• 支持创建、编辑、拖拽元素(如:文本框、下拉框等)
• 可将图形表单导出对应的xml描述文件
• 可根据xml描述文件显示表单图形
注意:本文是随着程序的编写进度而撰写的,程序在不断的完善,本文也将不断的修改完善。
下面的图形显示了系统效果图:
二、系统设计
由系统范围小节中的效果图可知,表单设计器可分解三个小部份来进行,它们分别是:表单容器、控件、设计面板,因此在我们在总体上要创建三大对象来完成表单设计器的功能需求。
• 控件(control):是指一些常用的控件,如:文本标签、文本框、下拉框、日期控件等。
• 表单容器(form):相当如Winform这么东东,只做窗口容器用。
• 设计面板:设计面板是表单元素的容器对象。
接下来将对三大对象具体要达到的要求作进一步的描述:
• 控件功能:1、通过鼠标拖动控件中心部位移动控件位置;2、通过鼠标拖动控件四边描点可改变控件的大小;3、通过键盘上、下、左、右可移动选中控件;4、支持对象序列化成xml字符流;5、支持将xml字符流反序列化成对象实例,并生成图形。
• 表单容器:1、管理并显示容器中的所有控件;2、通过鼠标拖动控件四边描点可改变表单容器的大小;3、支持Del键删除功能;4、支持Ctr+鼠标多选功能;5、支持对象序列化成xml字符流;6、支持将xml字符流反序列化成对象实例,并生成图形;7、建立容器中各子元素之间的逻辑关系。
• 设计面板:1、提供控件工具箱,通过拖拽或点击工具箱中的控件可在实现表单容器上创建控件的实例;2、提供表单信息的录入、编辑等功能;3、提供控件信息的录入、编辑、删除等功能。