• Engine工具栏按钮的使用详解


    转自原文 Engine自定义控件实现toolbar功能

     

    Engine提供的工具条能够轻易实现各种操作,非常方便,可是不好的地方就是太死板了,toolbar的图标都不能改。因此需要自己做按钮做控件去实现这些功能。

    比如说放大和全景

           //放大
            private void ZoomIn_Click(object sender, RoutedEventArgs e)
            {
                ControlsMapZoomInTool zoomintool = new ControlsMapZoomInTool();
                zoomintool.OnCreate(mapControl.Object);
                mapControl.CurrentTool = (ESRI.ArcGIS.SystemUI.ITool)zoomintool;
            }


            //全景
            private void zoomentire_Click(object sender, RoutedEventArgs e)
            {
                ControlsMapFullExtentCommand fullview = new ControlsMapFullExtentCommand();
                fullview.OnCreate(mapControl.Object);
                fullview.OnClick();
            }

    分别是调用了CurrentTool 和OnClick的方式。

    ArcGIS MapControl 中常用命令

    下面列举更多的一些命令。

    功能类 事件
    放大 ControlsMapZoomInTool 设置
    CurrentTool
    缩小ControlsMapZoomOutTool 设置
    CurrentTool
    打开文件ControlsOpenDocCommand OnClick()
    添加数据ControlsAddDataCommand OnClick()
    全图ControlsMapFullExtentCommand OnClick()
    查找ControlsMapFindCommand OnClick()
    属性工具ControlsMapIdentifyTool 设置
    CurrentTool
    选择Feature ControlsSelectFeaturesTool 设置
    CurrentTool
    清除选择ControlsClearSelectionCommand OnClick()
    开始编辑ControlsEditingStartCommand OnClick()
    保存编辑ControlsEditingSaveCommand OnClick()
    停止编辑ControlsEditingStopCommand OnClick()
    编辑工具ControlsEditingEditTool 设置
    CurrentTool
    属性编辑命

    ControlsEditingAttributeCommand OnClick()
    测量工具ControlsMapMeasureTool 设置
    CurrentTool
    创建路径(网
    络分析)
    ControlsNetworkAnalystRouteCommand OnClick()
    创建路径点ControlsNetworkAnalystCreateLocationTool 设 置
    CurrentTool
    最短路径查

    ControlsNetworkAnalystSolveCommand OnClick()
    Scene缩小ControlsSceneExpandFOVCommand OnClick()
    当然,还有很多很多其他的命令。从上面的列表比较我们也可以看出,一般
    来说,如果类的后缀是Command,则用OnClick方法;如果是Tool,则设置Map
    的CurrentTool属性为该工具。

    ArcSence中的命令使用示例

    以下是scenecontrol的一些:

          private void btn_zoomin_Click(object sender, EventArgs e)
            {
                ICommand command = new ControlsSceneZoomInTool();//ControlsSceneZoomInToolClass();
                command.OnCreate(this.axSceneControl1.Object);
                this.axSceneControl1.CurrentTool = command as ESRI.ArcGIS.SystemUI.ITool;
            }

            private void btnzoomout_Click(object sender, EventArgs e)
            {
                ICommand command = new ControlsSceneZoomOutTool();
                command.OnCreate(this.axSceneControl1.Object);
                this.axSceneControl1.CurrentTool = command as ESRI.ArcGIS.SystemUI.ITool;
            }

            //飞行模式。。
            private void btntoolfly_Click(object sender, EventArgs e)
            {
                ICommand command = new ControlsSceneFlyToolClass();//ControlsSceneZoomInToolClass();
                command.OnCreate(this.axSceneControl1.Object);
                this.axSceneControl1.CurrentTool = command as ESRI.ArcGIS.SystemUI.ITool;
            }


            //选择模式..
            private void btnSelect_Click(object sender, EventArgs e)
            {
                ICommand command = new ControlsSceneSelectFeaturesToolClass();//ControlsSceneZoomInToolClass();
                command.OnCreate(this.axSceneControl1.Object);
                this.axSceneControl1.CurrentTool = command as ESRI.ArcGIS.SystemUI.ITool;
            }

            //放大至目标区域
            private void btntargetzoom_Click(object sender, EventArgs e)
            {
                ICommand command = new ControlsSceneTargetZoomToolClass();//ControlsSceneZoomInToolClass();
                command.OnCreate(this.axSceneControl1.Object);
                this.axSceneControl1.CurrentTool = command as ESRI.ArcGIS.SystemUI.ITool;
            }

            //全景
            private void btnFullExtern_Click(object sender, EventArgs e)
            {
                ICommand command = new ControlsSceneFullExtentCommandClass();
                command.OnCreate(this.axSceneControl1.Object);
                command.OnClick();
            }

            private void btnpan_Click(object sender, EventArgs e)
            {
                ICommand command = new ControlsScenePanTool();
                command.OnCreate(this.axSceneControl1.Object);
                this.axSceneControl1.CurrentTool = command as ESRI.ArcGIS.SystemUI.ITool;
            }

            private void button1_Click(object sender, EventArgs e)
            {
                ICommand command = new ControlsSceneNavigateTool();
                command.OnCreate(this.axSceneControl1.Object);
                this.axSceneControl1.CurrentTool = command as ESRI.ArcGIS.SystemUI.ITool;
            }

  • 相关阅读:
    虚拟机的类加载机制
    数组
    Intellij快捷键
    Wireshark过滤器语法设置
    Git命令(转)
    Git命令
    字节码指令简介(转)
    Java异常了解
    Class类文件的结构
    垃圾收集器与内存分配策略(六)之内存分配与回收策略
  • 原文地址:https://www.cnblogs.com/arxive/p/6306807.html
Copyright © 2020-2023  润新知