WPF 创建自定义鼠标光标指针

Posted 积跬步---行千里

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了WPF 创建自定义鼠标光标指针相关的知识,希望对你有一定的参考价值。

WPF Cursor类中的两个构造函数:

public Cursor(Stream cursorStream)
public Cursor(string cursorFile)

以上的构造函数所使用的的资源均是 ani 或 cur的文件,并不支持图片的方式生成。

    /// This class allow you create a Cursor form a Bitmap
    /// </summary>
    internal class BitmapCursor : SafeHandle
    {

        public override bool IsInvalid
        {
            get
            {
                return handle == (IntPtr)(-1);
            }
        }


        public static Cursor CreateBmpCursor(Bitmap cursorBitmap)
        {

            var c = new BitmapCursor(cursorBitmap);

            return CursorInteropHelper.Create(c);
        }



        protected BitmapCursor(Bitmap cursorBitmap)
            : base((IntPtr)(-1), true)
        {
            handle = cursorBitmap.GetHicon();
        }


        protected override bool ReleaseHandle()
        {
            bool result = DestroyIcon(handle);

            handle = (IntPtr)(-1);

            return result;
        }

        [DllImport("user32")]
        private static extern bool DestroyIcon(IntPtr hIcon);
    }

提供的扩展方法:

public static Bitmap BitmapSourceToBitmap(this BitmapSource source)
        {
            using (var stream = new MemoryStream())
            {
                var e = new BmpBitmapEncoder();
                e.Frames.Add(BitmapFrame.Create(source));
                e.Save(stream);

                var bmp = new Bitmap(stream);

                return bmp;
            }
        }

转自:http://www.cnblogs.com/zhouyinhui/archive/2010/05/28/1746502.html

 

以上是关于WPF 创建自定义鼠标光标指针的主要内容,如果未能解决你的问题,请参考以下文章

在.net桌面程序中自定义鼠标光标

如何设置个性鼠标指针

CSS---cursor 鼠标指针光标样式(形状)

Chart.js - 鼠标悬停时自定义css到数据集

在鼠标光标平面上绘图或创建自定义动画系统光标?

自定义鼠标指针在 IE11 中不起作用