WPF鼠标形状的设置

1、使用 Cursor属性设置鼠标形状#

<Button Cursor="Hand" />

鼠标形状的枚举数值如下所示:

public enum CursorType
{
    None = 0,
    No = 1,
    Arrow = 2,
    AppStarting = 3,
    Cross = 4,
    Help = 5,
    IBeam = 6,
    SizeAll = 7,
    SizeNESW = 8,
    SizeNS = 9,
    SizeNWSE = 10,
    SizeWE = 11,
    UpArrow = 12,
    Wait = 13,
    Hand = 14,
    Pen = 15,
    ScrollNS = 16,
    ScrollWE = 17,
    ScrollAll = 18,
    ScrollN = 19,
    ScrollS = 20,
    ScrollW = 21,
    ScrollE = 22,
    ScrollNW = 23,
    ScrollNE = 24,
    ScrollSW = 25,
    ScrollSE = 26,
    ArrowCD = 27
}

2、加载外部图片作为鼠标形状#

public class CursorSafeHandle : SafeHandle
{
    public CursorSafeHandle(IntPtr preexistingHandle, bool ownsHandle)
        : base(IntPtr.Zero, ownsHandle)
    {
        handle = preexistingHandle;
    }
    public override bool IsInvalid
    {
        get { return handle == IntPtr.Zero; }
    }
    protected override bool ReleaseHandle()
    {
        return true;
    }
}
Bitmap dimage = new Bitmap("update.png");
var handle = dimage.GetHicon();
var c = new CursorSafeHandle(handle, true);
var cursor= CursorInteropHelper.Create(c);
testButton.Cursor = cursor;

3、创建Bitmap图像#

我们还可以在GDI+上绘制图形作为鼠标形状:

private Bitmap FillGraphToBitmap()
{
    var backBitmap = new Bitmap(20, 20);
    using (Graphics graphics = Graphics.FromImage(backBitmap))
    {
        // 设置背景色
        graphics.Clear(System.Drawing.Color.Transparent);
        // 绘制圆
        Brush greenBrush = new SolidBrush(Color.Green);
        graphics.FillEllipse(greenBrush, 0, 0, backBitmap.Width, backBitmap.Height);
        graphics.Dispose();
    }
    return backBitmap;
}

作者:dongweian

出处:https://www.cnblogs.com/dongweian/p/17451004.html

版权:本作品采用「署名-非商业性使用-相同方式共享 4.0 国际」许可协议进行许可。

posted @   Dwaynerbing  阅读(1444)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 展开说说关于C#中ORM框架的用法!
点击右上角即可分享
微信分享提示
more_horiz
keyboard_arrow_up dark_mode palette
选择主题
menu