Nomatic
不积跬步无以至千里

前言 

 
     自从Silverlight2发布以后就开始受到很多开发者的关注,无论从Runtime还是Tools都给我们带来了很多的惊喜,如支持框架语言Visual Basic, Visual C#, IronRuby, Ironpython,对JSON、Web Service、WCF以及Sockets的支持等一系列新的特性。其中,大家最关心的可能就是其中的跨浏览器能力,以及强大的用户界面表现能力。
     在下文中我将使用它来设计开发一个智能表单设计器,因为第一次接触silverlight开发表单设计器,在开发、设计的过程中肯定会遇到很多的问题,我将整个学习新知识、解决问题的过程记录下来,与有同样爱好的朋友进行交流、讨论,请大家以朋友的心态阅读本文。
 
     本文主要讲述使用vs.net2010开发一个基于silverlight的智能表单设计器,对于silverlight技术基础知识我就不做介绍,如果您不了解sliverlight,可以在BaiDu、Google上查找很多相关的资料。以推荐三个学习网站
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、提供控件信息的录入、编辑、删除等功能。
 

posted on 2010-12-02 16:51  刘其武  阅读(2776)  评论(15编辑  收藏  举报