• ArcGIS Pro二次开发-放大缩小工具


    using System;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using ArcGIS.Core.CIM;
    using ArcGIS.Core.Data;
    using ArcGIS.Core.Geometry;
    using ArcGIS.Desktop.Catalog;
    using ArcGIS.Desktop.Core;
    using ArcGIS.Desktop.Editing;
    using ArcGIS.Desktop.Extensions;
    using ArcGIS.Desktop.Framework;
    using ArcGIS.Desktop.Framework.Contracts;
    using ArcGIS.Desktop.Framework.Dialogs;
    using ArcGIS.Desktop.Framework.Threading.Tasks;
    using ArcGIS.Desktop.Mapping;
    
    
    
    using System.Windows.Input;
    
    
    
    
    
    namespace ProAppModule1
    {
        internal class MapToolSelect : MapTool
        {
            public MapToolSelect()
    
            {
    
               
    
            }
            protected override Task OnToolActivateAsync(bool active)
    
            {
    
                return base.OnToolActivateAsync(active);
    
            }
    
    
    
            protected override void OnToolMouseDown(MapViewMouseButtonEventArgs e)
    
            {
    
                // On mouse down check if the mouse button pressed is:
    
                // the left mouse button to handle zoom in
    
                // or the right mouse button to handle zoom out
    
                // If it is handle the event.
    
                switch (e.ChangedButton)
    
                {
    
                    case MouseButton.Right:
    
                        e.Handled = true;
    
                        break;
    
                    case MouseButton.Left:
    
                        e.Handled = true;
    
                        break;
    
                }
    
            }
    
    
    
            protected override Task HandleMouseDownAsync(MapViewMouseButtonEventArgs e)
    
            {
    
                // Get the map coordinates from the click point and change the Camera to zoom in or out.
    
                return QueuedTask.Run(() =>
    
                {
    
                    var mapClickPnt = MapView.Active.ClientToMap(e.ClientPoint);
    
                    ActiveMapView.LookAt(mapClickPnt, TimeSpan.FromSeconds(1));
    
                    // zoom out
    
                    if (e.ChangedButton == MouseButton.Right)
    
                    {
    
                        ActiveMapView.ZoomOutFixed(TimeSpan.FromSeconds(1));
    
                    }
    
                    // zoom in
    
                    else if (e.ChangedButton == MouseButton.Left)
    
                    {
    
                        ActiveMapView.ZoomInFixed(TimeSpan.FromSeconds(1));
    
                    }
    
                });
    
            }
    
    
    
            protected override void OnToolKeyDown(MapViewKeyEventArgs k)
    
            {
    
                // using key up and down in order to zoom out and in
    
                // if those keys are used we need to mark them as handled
    
                if (k.Key == Key.Up || k.Key == Key.Down)
    
                    k.Handled = true;
    
                base.OnToolKeyDown(k);
    
            }
    
    
    
            protected override Task HandleKeyDownAsync(MapViewKeyEventArgs k)
    
            {
    
                // only called when 'handled' in OnToolKeyDown
    
                if (k.Key == Key.Up)
    
                {
    
                    // Key.Up => zoom out
    
                    return ActiveMapView.ZoomOutFixedAsync(TimeSpan.FromSeconds(1));
    
                }
    
                // Key.Down => zoom in
    
                //else if (k.Key == Key.Down)
    
                {
    
                    return ActiveMapView.ZoomInFixedAsync(TimeSpan.FromSeconds(1));
    
                }
               
    
            }
    
        }
    
    
    }
  • 相关阅读:
    C#文件操作
    WPF 工具提示(ToolTip)
    C#中is 和 as 操作符
    C#线程同步——lock,Monitor,Mutex(摘录)
    随记
    实现RichTextBox内容自动滚动(WPF)
    初探MVC3(一)
    thinkPad系列的笔记本质量已经大不如以前了,太令人失望了
    WPF—— ComboBox绑定应用
    new,virtual,override,interface,delegate,eventC#——方法实现总结
  • 原文地址:https://www.cnblogs.com/gisoracle/p/12462626.html
Copyright © 2020-2023  润新知