1.1. UIElement
1.1.1. 接口定义
图 2‑1 IUIElementAdapterFactoryCatalog
其中UIElementAdapterFactoryCatalog是CAB中提供的默认实现

图 2‑2 IUIElementAdapterFactory
CompositeUI.WinForms中有一个实现了该接口的ToolStripUIAdapterFactory,用以提供菜单或工具条的实现

图 2‑3 IUIElementAdapter
其中UIElementAdapter是CAB中提供的抽象泛型实现
1.1.2. 接口协作
图 2‑4 接口调用关系

图 2‑5 GetFactory的默认实现
因此在建立我们自己的UI时,需要至少实现两个类,用于实现IUIElementAdapterFactory和IUIElementAdapter,然后在系统初始化期间把我们自己的Factory加入到服务集合中,代码如下所示:
protected override void AfterShellCreated()
{
base.AfterShellCreated();
IUIElementAdapterFactoryCatalog catalog = RootWorkItem.Services.Get<IUIElementAdapterFactoryCatalog>();
catalog.RegisterFactory(new ClickableTreeViewAdapterFactory());
// both main menus should have their items added to the root nodes collection
RootWorkItem.UIExtensionSites.RegisterSite(UIExtensionConstants.MAINMENU, Shell.MainNavigationTree);
RootWorkItem.UIExtensionSites.RegisterSite(UIExtensionConstants.MAINSTATUS, Shell.mainStatusStrip);
// Load the menu structure from App.config
UIElementBuilder.LoadFromConfig(RootWorkItem, Shell.MainNavigationTree);
}
其中ClickableTreeViewAdapterFactory是我们UI实现类。
本文介绍如何在CAB框架中实现自定义UI元素,包括实现IUIElementAdapterFactory和IUIElementAdapter接口的方法,以及如何注册自定义的UI元素工厂。


1201

被折叠的 条评论
为什么被折叠?



