首页 > 其他分享 >WPF鼠标形状的设置

WPF鼠标形状的设置

时间:2023-06-02 10:23:42浏览次数:58  
标签:鼠标 backBitmap Bitmap 形状 var new WPF public

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;
}

标签:鼠标,backBitmap,Bitmap,形状,var,new,WPF,public
From: https://www.cnblogs.com/dongweian/p/17451004.html

相关文章

  • qt——不写鼠标事件,获取鼠标点击窗口后的坐标位置
               ......
  • WPF绘制深圳地铁路线图
    经常坐地铁,却不知道地铁多少条线路?哪个站下车?今天就带领大家熟悉并绘制深圳地铁路线图。WPF在绘制矢量图方面有非常强大的优势,利用WPF可以绘制出各种矢量图形,如线,圆,多边形,矩形,及组合图形。今天以绘制深圳地铁路线图为例,简述WPF在图形绘制方面的一些知识,仅供学习分享使用,如有不足......
  • element ui 预览图片的时候滚动鼠标放大缩小, 重新打开的时候恢复原来大小
    <template><div><el-button@click="openPreview">预览图片</el-button><el-dialog:visible.sync="dialogVisible":close-on-click-modal="false":before-close="resetPreview"><im......
  • WPF 监听TextBlock 的Text改变事件
    privatestaticSystem.ComponentModel.DependencyPropertyDescriptordescriptor=System.ComponentModel.DependencyPropertyDescriptor.FromProperty(TextBlock.TextProperty,typeof(TextBlock));descriptor.AddValueChanged(tb,TbTextChanged);priva......
  • 使用WPF、OwinSelfHost和Swagger创建自托管的Web API
    在本篇博客中,我将介绍如何在WPF应用程序中使用OwinSelfHost和Swagger来创建自托管的WebAPI。我们将使用WPF作为我们的应用程序界面,OwinSelfHost来自托管我们的WebAPI,并使用Swagger来为我们的API生成文档。首先,确保你的计算机上已安装了以下组件:VisualStudio2017.NETFramew......
  • LYT-WPF-MVVM框架中的INotifyPropertyChanged
    参考文档:WPFMVVM框架中的INotifyPropertyChanged-知乎(zhihu.com)INotifyPropertyChanged接口用于通知视图或ViewModel绑定哪个属性无关紧要;它已更新。让我们举个例子来理解这个接口。以一个WPF窗口为例,其中共有三个字段:名字、姓氏和全名。在这里,名字和姓氏文本框是可编......
  • WPF 行为
    一、简介行为是一类事物的共同特征,可以向用户界面控件添加功能,而无需将其子类化。功能是在行为类中实现的,并附加到控件上,就像它本身就是控件的一部分。比如在鼠标进入/离开控件时,表现出不同的现象;给TextBox添加水印等二、使用2.1 例:publicclassFloatBehavior:Be......
  • 当鼠标滑过文本框自动选中输入框内容JS代码
    代码:<html><head><title>响应鼠标自动选中文本框内容</title></head><body><inputid="a"type="text"value="请输入搜索词"οnmοuseοver="selectInputContent(this.id)"/><scripttype="text/......
  • win11鼠标能动但是无法点击怎么办 win11鼠标能动但是无法点击解决方案(WSG实测可以)
    win11用户在使用电脑的时候遇到了鼠标能动但是无法点击的情况,像这种情况要怎么办呢?你先按住ctrl+alt+delete这组快捷键,然后打开任务管理器,接着选择运行新任务,输入explorer.exe,之后系统就会自动刷新桌面缓存,这个时候应该问题就解决了。如果不行的话,应该是鼠标驱动出问题了,建议大家......
  • WPF全局样式
    WPF全局样式Theme目录下建立Style.xaml文件  <ResourceDictionaryxmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"><StyleTargetType="......