2.DesignerGlyph的實現
override方式實現DesignerGlyph的GetBounds和OnPaint方法
3.對於簡單活動,直接override實現ActivityDesigner的OnLayoutSize,OnPaint方法
OnLayoutSize:返回大小
OnPaint:實現了一些必要的繪圖功能
GetBounds:返回代表圖形邊界的矩形
修改設計器布局
重載Acitivity Designer的OnLayoutSize和OnLayoutPosition
OnLayoutSize返回設計器的合計大小尺寸,OnLayoutPosition計算出子活動的偏移。
設計器主題
1.實現特定的ActivityDesignerTheme
2.再通過ActivityDesignerThemeAttribute注入
3.ActivityDesigner.OnPaint中可以調用Theme
工具箱
默認是通過ToolboxItemAttribute指向ActivityToolboxItem。
如果有特殊需求,例如在托拽的時候要實現復合控件可以繼承ActivityToolboxItem,並在CreateComponentsCore中實現
這時候ToolboxItemAttribute指向自定義的ActivityToolboxItem
使用ToolboxBitmapAttribute可以在工具箱實現自定義視圖
2.2 駐留設計器
Designer Surface:職責是管理Designer Host,管理與用戶交互(得到vIEw,得到host,異步加載Designer加載器)
Designer Host的職責
1.管理IComponent和相關的IDesigner之間的交互;
2.是一個服務容器,提供取消、剪切板功能和其它活動設計器需要的功能。
事務管理
組件管理:CreateComponent,GetDesigner,GetType
設計器的加載和管理
// 摘要:
// 在激活此設計器時發生。
event EventHandler Activated;
//
// 摘要:
// 在停用此設計器時發生。
event EventHandler Deactivated;
//
// 摘要:
// 在此設計器加載完文檔時發生。
event EventHandler LoadComplete;