程序集: SuperMap.UI.Controls (in SuperMap.UI.Controls)
版本: dll
语法
C# |
---|
public class Layer3DsTree : MultiSelectableTree |
备注
有关三维图层树的详细介绍,请参见:图层管理器。
Layer3DsTree 继承自 TreeView,以树结构的形式管理三维场景中的图层。场景中的一个图层对应 Layer3DsTree 中的一个树节点,有些图层还包含了多个子图层,每一个子图层对应该图层节点下的一个子节点。下面综合介绍 Layer3DsTree 类的接口作用、使用方式以及接口间的相关关系。
- Layer3DsTree.Scene 属性用于设置 Layer3DsTree 关联的场景,关联场景后,Layer3DsTree 将自动展现指定的场景的图层结构。Layer3DsTree 与 LayersTree 不同,Layer3DsTree 包含了对图层进行分类显示的节点,树中的一级节点为图层类别节点,如屏幕图层、普通图层和地形图层,对应的树节点称为屏幕图层节点、三维图层集合节点和地形图层集合节点。场景中的图层会按照其所属的类型显示到相应的图层类别节点下,作为其下的子节点。此外,场景中有且仅有一个屏幕图层,屏幕图层节点下的子结点为对应屏幕图层中的对象。
- Layer3DsTree 提供了简单的界面外观定制接口,Icons 属性可以设置树节点上显示哪些图标,默认树节点上的图标全部显示,树节点上的图标包括:表示图层是否可显示、可选择、可编辑状态的图标,表示图层类型的图标等,具体参见 TreeIconTypes 枚举。另外,有些图层节点上并不能够显示所有的图标,如影像图层,不能进行编辑和选择操作,所以不会显示表示图层是否可选择、可编辑状态的图标。
- Layer3DsTree 提供的交互操作中,可以通过拖动选中的图层节点,改变图层的顺序,并且在拖动过程中会显示一条标识图层插入位置临时线条,用户可以通过 DropLineColor 属性设置该线条的显示颜色。
- Layer3DsTree 控件提供了基本的图层管理的交互操作,同时,提供了相关接口,是用户可以方便、快速、灵活地扩展 Layer3DsTree 控件的交互操作功能,包括定制已提供的默认交互操作。
-
Layer3DsTree 提供了灵活的右键菜单定制功能,NodeContextMenuStrips 属性可以为树节点添加右键菜单,右键菜单的指定依赖树节点的类型,如 Layer3DsTree 中包含了屏幕图层节点、三维图层节点等不同类型的节点(参见 Layer3DsTreeNodeDataType 枚举),NodeContextMenuStrips 属性可以为一种类型的树节点指定一个右键菜单,在使用中,当用户右键单击该类型的树节点时,就会弹出所指定的右键菜单。
同时,还可以通过 BeforeNodeContextMenuStripShow 事件对于相同类型节点的不同使用差异化的右键菜单,例如,对于三维图层类型的树节点,其进一步还可以区分为KML图层节点和影像图层节点,那么,通过 NodeContextMenuStrips 属性为图层类型(Layer3DsTreeNodeDataType.Layer3D)的树节点指定一个右键菜单。
之后,注册 BeforeNodeContextMenuStripShow 事件,在事件的 BeforeNodeContextMenuStripShowEventArgs 参数中通过 Node 属性获取当前右键单击的树节点类型,如果该树节点为三维图层类型,可以进一步判断该三维图层是 KML 图层还是影像图层,然后,获取 ContextMenuStrip 属性,修改通过 NodeContextMenuStrips 属性为三维图层类型的树节点定义的右键菜单,以呈现 KML 图层或影像图层专有的功能操作,在表现上,相当于右键单击了 KML 图层节点或影像图层节点后弹出其专有的右键菜单;也可以创建新的右键菜单覆盖 ContextMenuStrip 属性值,来改变 NodeContextMenuStrips 属性为三维图层类型的树节点定义的右键菜单。
- Layer3DsTree 也支持快捷地获取到相应类型的树节点,例如:通过 ScreenLayer3DNode 属性可以获取到屏幕图层节点;通过 Layer3DsNode 属性可以获取到三维图层集合节点;通过 TerrainLayersNode 属性可以获取到地形图层集合节点。另外,也可以通过 Layer3DsTree 的 Nodes 属性(继承自 TreeView),遍历和获取到目标图层节点,在此基础上,再次调用 Nodes 属性,可以进一步遍历和获取到该节点的子节点。
- Layer3DsTree 提供了灵活设置鼠标键盘操作对应行为的接口,即设置鼠标键盘操作的响应内容。用户可以自定义响应内容的鼠标键盘操作主要有:Deleted 键操作、F2 键操作、鼠标拖拽文件操作、鼠标拖拽数据集节点到数据源节点操作(参见 InteractionType 枚举),Layer3DsTree 已经为这些鼠标键盘操作提供了默认的相应内容,如按 F2 键为树节点的显示名称进行重命名。Layer3DsTree 提供了 Interactions 属性支持自定义上述鼠标键盘操作的响应内容,如自定义键盘F2键,赋予其新的执行内容,以取代默认的重命名树节点的操作。
- 当然,用户还可以通过 Layer3DsTree 继承自基类(TreeView)的相关的鼠标键盘事件和属性,自定义任何鼠标键盘操作的响应内容。
示例
有关如何打开三维图层树的操作,请参见:打开三维图层树。
继承层次
System..::.MarshalByRefObject
System.ComponentModel..::.Component
System.Windows.Forms..::.Control
System.Windows.Forms..::.TreeView
SuperMap.UI..::.MultiSelectableTree
SuperMap.UI..::.Layer3DsTree