我目前正在尝试在图片框中显示的图像上绘制一些东西。我正在为鼠标活动使用事件处理程序:onMouseUp、onMouseMove 和 onMouseDown。
private void onMouseDown(object sender, MouseEventArgs e)
{
mouseDown = true;
}
private void onMouseMove(object sender, MouseEventArgs e)
{
if (mouseDown)
{
using (Graphics g = pictureBox.CreateGraphics())
{
g.FillEllipse(Brushes.Black, e.X - size, e.Y - size, size * 2, size * 2);
}
}
}
private void onMouseUp(object sender, MouseEventArgs e)
{
mouseDown = false;
using (Graphics g = pictureBox.CreateGraphics())
{
g.FillEllipse(Brushes.Black, e.X - size, e.Y - size, size * 2, size * 2); //just in case user just clicks instead of move the mouse
}
}
我正在尝试模拟当鼠标在图片框上移动时绘制指定大小(半径)的圆圈的画笔工具。它在缓慢移动时效果很好,但当移动速度更快时,pictureBox 似乎只捕捉到一些事件,并且很多圆圈被跳过而不被绘制。尤其是半径很小的时候。
我该怎么做才能让它更快更顺畅?