C# winform 使用圖片自訂滑鼠游標

要將圖片設為滑鼠游標很簡單,只要兩行:
  
        Bitmap bitmap = (Bitmap)Bitmap.FromFile(@"D:\ruyut\download\cola.png");
        this.Cursor = new Cursor(bitmap.GetHicon());
    


但是這樣會遇到一個問題,滑鼠游標點下去的那個位置其實是圖片的中心點
但是使用者不會知道中心點是哪裡,一般都會認為最尖的那個角比較可能是主要的判斷位置。如果想要移動判斷的位置該怎麼做?只要將我們想要的那個「角」放置在螢幕中央即可,但是這樣圖片不是會因為不夠大而被裁切嗎?那我們就把圖片放大!

首先先用小畫家開啟圖片,並開啟尺規功能,找到想要設為中心的座標,筆者這張圖片中心是 (3, 46)
然後將圖片放大兩倍,再用長寬減去我們找出來的座標點的位置繪製圖片即可
  
        Bitmap bitmap = (Bitmap)Bitmap.FromFile(@"D:\ruyut\download\cola.png");
        Bitmap cursorBitmap = new Bitmap(bitmap.Width * 2, bitmap.Height * 2);
        Graphics g = Graphics.FromImage(cursorBitmap);
        Point point = new Point(3, 46);
        g.DrawImage(bitmap, bitmap.Width - point.X, bitmap.Height - point.Y, bitmap.Width, bitmap.Height);
        this.Cursor = new Cursor(cursorBitmap.GetHicon());
    

結果:

留言