study log

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

SharpDevelop浅析_5_Windows Forms Designer
自己动手创建应用程序界面设计器

1、Demo界面及功能解释
2、Demo实现简述
3、参考资料
Demo下载

1、Demo界面及功能解释
编译并运行程序,界面如下:
图1:


图2:


功能概述:
a, 窗体左侧为工具栏,可以单击、双击、拖曳的方式来添加控件
b, 窗体右侧为属性(事件)窗口及控件(浏览)选择Combo
c, 窗体中部包括设计器及代码查看Tab页
d, 窗体顶部实现了编辑、对齐、运行等命令项

2、Demo实现简述
a, 设计器的核心是.NET框架提供的DesignSurface类、ServiceContainer类
b, 设计器的扩展点(自定义部分)是通过向ServiceContainer添加自动定义服务类(IOC模式?)或订阅服务类的事件……
c, Demo中的使用或创建的服务类包含了ISelectionService, IComponentChangeService MenuCommandService, CustomToolboxService, NameCreationService, DesignerEventService, EventBindingService.
d, 补充说明: Demo左侧工具栏项目是通过\data\SharpDevelopControlLibrary.xml配置文件定义;窗口中部的代码查看页中使用了SharpDevelop的TextEditorControl.

3、参考资料
关于自定义窗体设计器的具体设计过程请参照如下资源:
利用 .NET Framework 2.0 创建并宿主自定义的设计
Create And Host Custom Designers With The .NET Framework 2.0 (英文原文)

Hosting Windows Forms Designers


沧海月明 "写Form设计器尝试"系列


Demo中左侧工具栏的控件使用了 纶巾客 写的一个控件:
制作VS风格的Toolbox控件
对该控件的主要修改如下:
ToolBoxItem类添加了Tag及Image属性以存储Tag数据及显示图片
ToolBox增加了SelectedItemChanged, ItemDoubleClicked, ItemDragStart事件

--------------------------------------------------------------------------------------------------------------------------
SharpDevelop浅析系列这一阶段的文章基本完成了;
暂未涉及到Project组织方式, Debugger 及其它一些Addin项目的分析;学以致用,如果以后有应用需求,也可能会再来补充分析些其它有意思的项目吧...

posted on 2007-02-25 00:02  lin-zhang  阅读(15350)  评论(36编辑  收藏  举报