ArcEngine之ToolbarControl控件

ToolbarControl是一个装载地图操作命令和工具的控件,该类内部维护一个CommandPool命令池,在这个命令池中存放着所有已经添加的Command对象,获取其中的Command可以通过CommandPool的get_Command方法,通过比较Command的名称,可以得到想要的Command对象。

也就是说,ToobarControl是一个工具箱,里面装有大量的工具用于操作地图,例如文件打开、缩放、移动、测量等等。在ArcEngine中这些工具就是一个个的Command对象。

ToolbarControl控件

ToolbarControl控件在设计界面如上图所示,准确来说,它是一个容纳各种地图操作命令和工具的容器,里面带有一些常用的工具,这些工具包括两种,一种是命令,一种工具,命令是一次性指令(保存、打开等),而工具则提供一个交互交互操作,需要用户进行二次操作(放大缩小、选择等),同时空间也支持支持自定义工具。

在ArcEngine中有两种方法配置toolbarcontrol:

1.控件属性配置

可以通过右键—属性,来对其属性进行配置,属性界面如下:

ArcEngine之ToolbarControl控件_第1张图片

  • General是通用属性,可以通过其设置整个空间的边框、显示效果、鼠标样式和源,此外其bBuddy是一个重要的属性,它指定了toolbarcontrol的控制主体,即工具和命令作用的对象。如果没有绑定MapControl,则控件上的工具将处于未不可用状态(呈灰色),如图:

此外,下面的Enabled属性如果没有勾选,也会出现同样的情况。

  • Item是管理控件内部工具的选项,可以添加自带的工具,通过add选项添加对应的工具和命令,如下图所示:

ArcEngine之ToolbarControl控件_第2张图片ArcEngine之ToolbarControl控件_第3张图片

通过,拖动选择排列顺序,通过右键删除工具。

  • Color用于设置toolbarcontrol工具栏背景的颜色,这里不详述。

2.代码配置

通过代码配置,向toolbarcontrol控件里面添加工具。上文说过,toolbarcontrol里面有一个CommandPool池,所以添加工具,其实就是添加一个个的command对象。而上文也说过,toolbarcontrol的item包括工具和命令,添加这两种对象的代码有所不同。其中工具类型的Command,一般以tool或是toolClass结尾;而命令类型的Command,一般以CommandClass结尾,具体可见:

https://wenku.baidu.com/view/261e41224b73f242336c5f68.html

下面是向toolbarcontrol控件添加item的代码:

 ICommand command = new ControlsMapFullExtentCommandClass();
 axToolbarControl1.AddItem(command, -1, -1, false, 0, esriCommandStyles.esriCommandStyleIconOnly);

同时,我们也可以通过代码实现方法一中的各类设置,比如设置toobarcontrol的enabled属性为true,就是相当于配置界面中,enabeled选项打钩。

ArcEngine之ToolbarControl控件_第4张图片

除了添加ArcEngine自带的command外,还可以自定义command,具体可参考:https://blog.csdn.net/zhumingquanqq/article/details/73549806

最后有个提醒:

toolbarcontrol空间里面的item很多,有很多看起来很相似,主要集中在scene和map navigation两个上面,记得要区分开。

ArcEngine之ToolbarControl控件_第5张图片ArcEngine之ToolbarControl控件_第6张图片

你可能感兴趣的:(GIS)