SharpDevelop淺析_5_Windows Forms Designer
自己動手創(chuàng)建應用程序界面設計器
1、Demo界面及功能解釋
2、Demo實現(xiàn)簡述
3、參考資料
Demo下載
1、Demo界面及功能解釋
編譯并運行程序,界面如下:
圖1:

圖2:

功能概述:
a, 窗體左側(cè)為工具欄,可以單擊、雙擊、拖曳的方式來添加控件
b, 窗體右側(cè)為屬性(事件)窗口及控件(瀏覽)選擇Combo
c, 窗體中部包括設計器及代碼查看Tab頁
d, 窗體頂部實現(xiàn)了編輯、對齊、運行等命令項
2、Demo實現(xiàn)簡述
a, 設計器的核心是.NET框架提供的DesignSurface類、ServiceContainer類
b, 設計器的擴展點(自定義部分)是通過向ServiceContainer添加自動定義服務類(IOC模式?)或訂閱服務類的事件……
c, Demo中的使用或創(chuàng)建的服務類包含了ISelectionService, IComponentChangeService MenuCommandService, CustomToolboxService, NameCreationService, DesignerEventService, EventBindingService.
d, 補充說明: Demo左側(cè)工具欄項目是通過\data\SharpDevelopControlLibrary.xml配置文件定義;窗口中部的代碼查看頁中使用了SharpDevelop的TextEditorControl.
3、參考資料
關(guān)于自定義窗體設計器的具體設計過程請參照如下資源:
利用 .NET Framework 2.0 創(chuàng)建并宿主自定義的設計
Create And Host Custom Designers With The .NET Framework 2.0 (英文原文)
Hosting Windows Forms Designers
Demo中左側(cè)工具欄的控件使用了 綸巾客 寫的一個控件:
制作VS風格的Toolbox控件
對該控件的主要修改如下:
ToolBoxItem類添加了Tag及Image屬性以存儲Tag數(shù)據(jù)及顯示圖片
ToolBox增加了SelectedItemChanged, ItemDoubleClicked, ItemDragStart事件
--------------------------------------------------------------------------------------------------------------------------
SharpDevelop淺析系列這一階段的文章基本完成了;
暫未涉及到Project組織方式, Debugger 及其它一些Addin項目的分析;學以致用,如果以后有應用需求,也可能會再來補充分析些其它有意思的項目吧...