Arcengine 自定义工具鼠标样式设置
arcengine开发过程中,有时会需要自定义工具,尤其是在开发要素编辑模块的时候,那么如何修改鼠标样式呢?
自定义工具需要继承 ESRI.ArcGIS.ADF.BaseClasses.BaseTool,刚开始以为直接设置
public override int Cursor => 2;
2对应esriControlsMousePointer里面的值,然而并没有生效,接着观察发现哪怕是ae自带的工具,cursor每次的值也是不同的,好吧忙了个寂寞……
接着尝试设置m_cursor属性,这一次倒是成功设置鼠标样式,并且发现了两种方法(撒花✿✿ヽ(°▽°)ノ✿),以下进行详细介绍
1.系统自带样式
this.m_cursor = System.Windows.Forms.Cursors.Cross;
以下是系统自带鼠标样式Cursors类的详细介绍:
//
// 摘要:
// 提供由 Windows 窗体应用程序使用的 System.Windows.Forms.Cursor 对象的集合。
public sealed class Cursors
{
//
// 摘要:
// 获取在应用程序启动时显示的光标。
//
// 返回结果:
// 一个 System.Windows.Forms.Cursor,它表示应用程序启动时显示的光标。
public static Cursor AppStarting { get; }
//
// 摘要:
// 获取滚轮操作过程中鼠标移动并且该窗口水平、垂直向下和向左滚动时显示的光标。
//
// 返回结果:
// 一个 System.Windows.Forms.Cursor,它表示滚轮操作过程中鼠标移动并且该窗口水平、垂直向下和向左滚动时显示的光标。
public static Cursor PanSW { get; }
//
// 摘要:
// 获取滚轮操作过程中鼠标移动并且该窗口垂直向下滚动时显示的光标。
//
// 返回结果:
// 一个 System.Windows.Forms.Cursor,它表示滚轮操作过程中鼠标移动并且该窗口垂直向下滚动时显示的光标。
public static Cursor PanSouth { get; }
//
// 摘要:
// 获取滚轮操作过程中鼠标移动并且该窗口水平、垂直向下和向右滚动时显示的光标。
//
// 返回结果:
// 一个 System.Windows.Forms.Cursor,它表示滚轮操作过程中鼠标移动并且该窗口水平、垂直向下和向右滚动时显示的光标。
public static Cursor PanSE { get; }
//
// 摘要:
// 获取滚轮操作过程中鼠标移动并且该窗口水平、垂直向上和向左滚动时显示的光标。
//
// 返回结果:
// 一个 System.Windows.Forms.Cursor,它表示滚轮操作过程中鼠标移动并且该窗口水平、垂直向上和向左滚动时显示的光标。
public static Cursor PanNW { get; }
//
// 摘要:
// 获取滚轮操作过程中鼠标移动并且该窗口垂直向上滚动时显示的光标。
//
// 返回结果:
// 一个 System.Windows.Forms.Cursor,它表示滚轮操作过程中鼠标移动并且该窗口垂直向上滚动时显示的光标。
public static Cursor PanNorth { get; }
//
// 摘要:
// 获取滚轮操作过程中鼠标移动并且该窗口水平、垂直向上和向右滚动时显示的光标。
//
// 返回结果:
// 一个 System.Windows.Forms.Cursor,它表示滚轮操作过程中鼠标移动并且该窗口水平、垂直向上和向右滚动时显示的光标。
public static Cursor PanNE { get; }
//
// 摘要:
// 获取滚轮操作过程中鼠标移动并且该窗口水平向右滚动时显示的光标。
//
// 返回结果:
// 一个 System.Windows.Forms.Cursor,它表示滚轮操作过程中鼠标移动并且该窗口水平向右滚动时显示的光标。
public static Cursor PanEast { get; }
//
// 摘要:
// 获取滚轮操作过程中鼠标不动但是该窗口可以在垂直方向上滚动时显示的光标。
//
// 返回结果:
// System.Windows.Forms.Cursor 表示滚轮操作过程中鼠标不动时显示的光标。
public static Cursor NoMoveVert { get; }
//
// 摘要:
// 获取滚轮操作过程中鼠标不动但是该窗口可以在水平方向上滚动时显示的光标。
//
// 返回结果:
// System.Windows.Forms.Cursor 表示滚轮操作过程中鼠标不动时显示的光标。
public static Cursor NoMoveHoriz { get; }
//
// 摘要:
// 获取滚轮操作过程中鼠标不动但是该窗口可以同时在水平和垂直方向上滚动时显示的光标。
//
// 返回结果:
// System.Windows.Forms.Cursor 表示滚轮操作过程中鼠标不动时显示的光标。
public static Cursor NoMove2D { get; }
//
// 摘要:
// 获取当鼠标定位在垂直拆分条上时显示的光标。
//
// 返回结果:
// 一个 System.Windows.Forms.Cursor,它表示当鼠标定位在垂直拆分条上时显示的光标。
public static Cursor VSplit { get; }
//
// 摘要:
// 获取当鼠标定位在水平拆分条上时显示的光标。
//
// 返回结果:
// 一个 System.Windows.Forms.Cursor,它表示当鼠标定位在水平拆分条上时显示的光标。
public static Cursor HSplit { get; }
//
// 摘要:
// 获取“帮助”光标,它是箭头和问号的组合。
//
// 返回结果:
// 一个 System.Windows.Forms.Cursor,它表示“帮助”光标。
public static Cursor Help { get; }
//
// 摘要:
// 获取等待光标,通常是沙漏形状。
//
// 返回结果:
// 一个 System.Windows.Forms.Cursor,它表示等待光标。
public static Cursor WaitCursor { get; }
//
// 摘要:
// 获取上箭头光标,该光标通常用来标识插入点。
//
// 返回结果:
// 一个 System.Windows.Forms.Cursor,它表示向上箭头光标。
public static Cursor UpArrow { get; }
//
// 摘要:
// 获取双向水平(西/东)大小调整光标。
//
// 返回结果:
// 一个 System.Windows.Forms.Cursor,它表示双向水平(西/东)大小调整光标。
public static Cursor SizeWE { get; }
//
// 摘要:
// 获取双向对角线(西北/东南)大小调整光标。
//
// 返回结果:
// 一个 System.Windows.Forms.Cursor,它表示双向对角线(西北/东南)大小调整光标。
public static Cursor SizeNWSE { get; }
//
// 摘要:
// 获取双向垂直(北/南)大小调整光标。
//
// 返回结果:
// 一个 System.Windows.Forms.Cursor,它表示双向垂直(北/南)大小调整光标。
public static Cursor SizeNS { get; }
//
// 摘要:
// 获取双向对角线(东北/西南)大小调整光标。
//
// 返回结果:
// 一个 System.Windows.Forms.Cursor,它表示双向对角线(东北/西南)大小调整光标。
public static Cursor SizeNESW { get; }
//
// 摘要:
// 获取四向大小调整光标,该光标由相联接的、分别指向东南西北的四个箭头组成。
//
// 返回结果:
// 一个 System.Windows.Forms.Cursor,它表示四向大小调整光标。
public static Cursor SizeAll { get; }
//
// 摘要:
// 获取指示某个特定区域对当前操作无效的光标。
//
// 返回结果:
// 一个 System.Windows.Forms.Cursor,它表示指示某个特定区域对当前操作无效的光标。
public static Cursor No { get; }
//
// 摘要:
// 获取 I 型光标,该光标用于显示单击鼠标时文本光标出现的位置。
//
// 返回结果:
// 一个 System.Windows.Forms.Cursor,它表示 I 形光标。
public static Cursor IBeam { get; }
//
// 摘要:
// 获取默认光标,它通常为箭头光标。
//
// 返回结果:
// 一个 System.Windows.Forms.Cursor,它表示默认光标。
public static Cursor Default { get; }
//
// 摘要:
// 获取十字线光标。
//
// 返回结果:
// 一个 System.Windows.Forms.Cursor,它表示十字线光标。
public static Cursor Cross { get; }
//
// 摘要:
// 获取箭头光标。
//
// 返回结果:
// 一个 System.Windows.Forms.Cursor,它表示箭头光标。
public static Cursor Arrow { get; }
//
// 摘要:
// 获取滚轮操作过程中鼠标移动并且该窗口水平向左滚动时显示的光标。
//
// 返回结果:
// 一个 System.Windows.Forms.Cursor,它表示滚轮操作过程中鼠标移动并且该窗口水平向左滚动时显示的光标。
public static Cursor PanWest { get; }
//
// 摘要:
// 获取手形光标,当悬停在 Web 链接上时通常使用该光标。
//
// 返回结果:
// 一个 System.Windows.Forms.Cursor,它表示手形光标。
public static Cursor Hand { get; }
}
2. 自定义鼠标样式
this.m_cursor = new System.Windows.Forms.Cursor(@"E:\\十字光标.cur");
至于光标文件,可以将你想要的鼠标样式图片通过cur在线转换器转换为cur文件,
安利一个不错的在线转换器:CUR转换器 — Convertio
当然,这种方式需要注意图片的大小,图片上的光标是多大的,在屏幕上也是多大
温馨提示
设置了public override int Cursor => 2;以上设置将会失效