鼠标旁边画线

时间:2014-06-15 15:34:23

标签: c# winforms drawing

我试图创建一个应用来编辑图像。我一直在努力保存我在图像上绘制的图形一段时间,现在我已经解决了这个问题,但我的下一个问题是线条现在看起来距离鼠标位置几个像素。

我有这个:

bool draw = false;
Graphics g;
int? preX = null;
int? preY = null;

private void btnOpen_Click(object sender, EventArgs e)
{
    OpenFileDialog open = new OpenFileDialog();
    open.Filter = "Image Files(*.jpg; *.jpeg; *.bmp; *.png;)|*.jpg; *.jpeg; *.bmp; *.png;";

    if (open.ShowDialog() == DialogResult.OK)
    {
        pictureBox1.Image = new Bitmap(open.FileName);
    }
}

private void pictureBox1_MouseMove(object sender, MouseEventArgs e)
{
    if (draw)
    {    
        Pen pen = new Pen(btnColor.ForeColor, float.Parse(numericUpDown1.Value.ToString()));
        Graphics g = Graphics.FromImage(pictureBox1.Image);
        g.DrawLine(pen, new Point(preX ?? e.X, preY ?? e.Y), new Point(e.X, e.Y));
        preX = e.X;
        preY = e.Y;
        pictureBox1.Invalidate();
    }
}

我希望这是有道理的,否则我会尽力让事情更清楚。我不太明白为什么会发生这种情况,但是当我开始在图片框上绘图时,线条不会出现在鼠标指针上,而是出现在右边几个像素处。请帮忙:(

0 个答案:

没有答案