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;
}
相关推荐
ms_27_data_develop几秒前
Java——集合
java·开发语言
灰色小旋风1 分钟前
力扣22 括号生成(C++)
开发语言·数据结构·c++·算法·leetcode
2501_924952693 分钟前
模板编译期哈希计算
开发语言·c++·算法
xiaoye-duck5 分钟前
C++ STL map 系列深度解析:从底层原理、核心接口到实战场景
开发语言·c++·stl
2201_758642649 分钟前
嵌入式C++开发注意事项
开发语言·c++·算法
七夜zippoe11 分钟前
WebAssembly与Python:在浏览器中运行Python
开发语言·python·wasm·webassembly·pyscript
小杍随笔24 分钟前
【Rust 语言编程知识与应用:同步机制详解】
开发语言·算法·rust
GawynKing40 分钟前
Java文件传输利器:MultipartFile介绍
java·开发语言
Java.熵减码农41 分钟前
经典20道Java面试题系列(一)
java·开发语言
MyBFuture1 小时前
Halcon 图像处理技巧:抠图与形态学操作指南
开发语言·halcon