二维图层树,该类用于管理地图中的图层,继承自 MultiSelectableTree 类。

命名空间:  SuperMap.UI
程序集:  SuperMap.UI.Controls (in SuperMap.UI.Controls)
版本: dll

语法

C#
[ToolboxBitmapAttribute(typeof(LayersTree))]
public class LayersTree : MultiSelectableTree

备注

有关二维图层树的详细介绍,请参见:图层管理器

LayersTree 继承自 TreeView,以树结构的形式管理地图中的图层。地图中的一个图层对应 LayersTree 中的一个树节点,有些专题图层还包含了多个专题图子项,每一个专题图子项对应该专题节点下的一个子节点。下面综合介绍 LayersTree 类的接口作用、使用方式以及接口间的相关关系。

  • LayersTree.Map 属性用于设置 LayersTree 关联的地图,关联地图后,LayersTree 将自动展现指定的地图的图层结构。
  • LayersTree 提供了简单的界面外观定制接口,Icons 属性可以设置树节点上显示哪些图标,默认树节点上的图标全部显示,树节点上的图标包括:表示图层是否可显示、可选择、可编辑、可捕捉状态的图标,表示图层类型的图标等,具体参见 TreeIconTypes 枚举。另外,有些图层节点上并不能够显示所有的图标,如影像图层,不能进行编辑和选择操作,所以不会显示表示图层是否可选择、可编辑状态的图标。
  • LayersTree 提供的交互操作中,可以通过拖动选中的图层节点,改变图层的顺序,并且在拖动过程中会显示一条标识图层插入位置临时线条,用户可以通过 DropLineColor 属性设置该线条的显示颜色。
  • LayersTree 控件提供了基本的图层管理的交互操作,同时,提供了相关接口,是用户可以方便、快速、灵活地扩展 LayersTree 控件的交互操作功能,包括定制已提供的默认交互操作。
  • LayersTree 提供了灵活的右键菜单定制功能,NodeContextMenuStrips 属性可以为树节点添加右键菜单,右键菜单的指定依赖树节点的类型,如 LayersTree 中包含了图层节点、专题图子项节点等不同类型的节点(参见 LayersTreeNodeDataType 枚举),NodeContextMenuStrips 属性可以为一种类型的树节点指定一个右键菜单,在使用中,当用户右键单击该类型的树节点时,就会弹出所指定的右键菜单。


    同时,还可以通过 BeforeNodeContextMenuStripShow 事件对于相同类型节点的不同使用差异化的右键菜单,例如,对于图层类型的树节点,其进一步还可以区分为矢量图层节点和影像图层节点,那么,通过 NodeContextMenuStrips 属性为图层类型(LayersTreeNodeDataType.Layer)的树节点指定一个右键菜单。


    之后,注册 BeforeNodeContextMenuStripShow 事件,在事件的 BeforeNodeContextMenuStripShowEventArgs 参数中通过 Node 属性获取当前右键单击的树节点类型,如果该树节点的类型为图层类型,进一步判断该图层是矢量图层还是影像图层,然后,获取 ContextMenuStrip 属性,修改通过 NodeContextMenuStrips 属性为图层类型的树节点定义的右键菜单,以呈现矢量图层和影像图层专有的功能操作,在表现上,相当于右键单击了矢量图层节点或影像图层树节点后弹出其专有的右键菜单;也可以创建新的右键菜单覆盖 ContextMenuStrip 属性值,来改变 NodeContextMenuStrips 属性为图层类型的树节点定义的右键菜单。

  • LayersTree 也支持快捷地获取到相应类型的树节点,可以通过 FindNode 方法找到指定的树节点;也可以通过该节点的 Nodes 属性(继承自 TreeView),可以遍历和获取到目标树节点,在此基础上,再次调用 Nodes 属性,可以遍历和获取到该树节点下的子节点。
  • LayersTree 提供了灵活设置鼠标键盘操作对应行为的接口,即设置鼠标键盘操作的响应内容。用户可以自定义响应内容的鼠标键盘操作主要有:Deleted 键操作、F2 键操作、鼠标拖拽文件操作、鼠标拖拽数据集节点到数据源节点操作(参见 InteractionType 枚举),LayersTree 已经为这些鼠标键盘操作提供了默认的相应内容,如按 F2 键为树节点的显示名称进行重命名。LayersTree 提供了 Interactions 属性支持自定义上述鼠标键盘操作的响应内容,如自定义键盘 F2 键,赋予其新的执行内容,以取代默认的重命名树节点的操作。
  • 当然,用户还可以通过 LayersTree 继承自基类(TreeView)的相关的鼠标键盘事件和属性,自定义任何鼠标键盘操作的响应内容。

示例

有关如何打开二维图层树的操作,请参见:打开二维图层树

继承层次

System..::.Object
  System..::.MarshalByRefObject
    System.ComponentModel..::.Component
      System.Windows.Forms..::.Control
        System.Windows.Forms..::.TreeView
          SuperMap.UI..::.MultiSelectableTree
            SuperMap.UI..::.LayersTree

请参见