WPF —— GDI画板

定义绘制对象

cs 复制代码
Graphics g;

起始点坐标

cs 复制代码
Point start;

画笔颜色

cs 复制代码
Color c1 = Color.Black;

是否开始绘制 当flag==true开始绘制,结束绘

cs 复制代码
private void Form1_MouseDown(object sender, MouseEventArgs e)
{
    if (e.Button == MouseButtons.Left) //点击了鼠标左键
    {
          start = e.Location ; //当前点击的坐标
          flag = true;
    }
}

制的时候只需要flag=false,

//在事件函数当中先判断flag 为true或者false,然后在做处理。

cs 复制代码
bool flag = false;

鼠标按下的方法:主要是获取按下时候的坐标也就是起始点坐标

cs 复制代码
private void Form1_MouseDown(object sender, MouseEventArgs e)
{
    if (e.Button == MouseButtons.Left) //点击了鼠标左键
    {
          start = e.Location ; //当前点击的坐标
          flag = true;
    }
}

鼠标移动的时候获取结束点,获取绘制的结束点,并且划线

cs 复制代码
private void Form1_MouseMove(object sender, MouseEventArgs e)
{
    if (flag == false) return;
    g.DrawLine(new Pen(c1, 2), start, e.Location);
    start = e.Location ; //重置起始点
}

结束绘制

cs 复制代码
private void Form1_MouseUp(object sender, MouseEventArgs e)
{
    flag = false;
}
相关推荐
何以解忧,唯有..3 小时前
Go语言类型转换详解:从基础到进阶实践
开发语言·后端·golang
何以解忧,唯有..3 小时前
Go 语言指针类型详解:从基础到实战
开发语言·后端·golang
天天爱吃肉82183 小时前
豆包 vs DeepSeek API 对比分析报告
android·java·大数据·开发语言·功能测试·嵌入式硬件·汽车
北域码匠4 小时前
奇偶归并排序:并行计算的排序利器
数据结构·算法·c#·排序算法
geovindu4 小时前
python: Reactor Pattern
开发语言·python·设计模式·反应器模式
CS_SKILL4 小时前
吉比特 C++ 实习一面面经:一轮把 C++、容器、并发、排序和网络全扫了一遍
java·开发语言·校招面经·实习面经·技术面经·吉比特校招
feifeigo1234 小时前
基于多混沌映射的图像加密(MATLAB实现)
开发语言·matlab
techdashen4 小时前
Go 语言仓库 Top 100 贡献者分析报告
开发语言·后端·golang
何以解忧,唯有..4 小时前
Go 语言变量命名规范详解
开发语言·后端·golang
专注搞钱4 小时前
Python自动爬设备报警日志,每天省1小时
开发语言·python·半导体