C# 在图像上绘制点

C# 在图像上绘制点,c#,points,C#,Points,我有一个图像,我需要在上面画一些点。问题是这些点出现的时间只有几分之一秒,然后就消失了。如何使点在图像上永久化。我已将图像设置为窗体的背景 我正在研究C#.net框架。 谢谢。我们需要查看代码。我的猜测是,您正在使用CreateGraphics进行绘制,而不是在OnPaint中进行绘制,因此当控件重新绘制时,它将被删除,并且您再也不会绘制它。重写OnPaint并在那里绘制所有图形(或发布相关示例)我们需要查看代码。我的猜测是,您正在使用CreateGraphics进行绘制,而不是在OnPaint

我有一个图像,我需要在上面画一些点。问题是这些点出现的时间只有几分之一秒,然后就消失了。如何使点在图像上永久化。我已将图像设置为窗体的背景

我正在研究C#.net框架。
谢谢。

我们需要查看代码。我的猜测是,您正在使用CreateGraphics进行绘制,而不是在OnPaint中进行绘制,因此当控件重新绘制时,它将被删除,并且您再也不会绘制它。重写OnPaint并在那里绘制所有图形(或发布相关示例)

我们需要查看代码。我的猜测是,您正在使用CreateGraphics进行绘制,而不是在OnPaint中进行绘制,因此当控件重新绘制时,它将被删除,并且您再也不会绘制它。覆盖OnPaint并在那里绘制所有图形(或发布相关示例)

您可以为图像创建图形对象,然后在图像上绘制这些点。这确实使它们永久存在。像这样:

public void ImageDrawing()
{
    // NOTE: There are several ways you can load an image
    // this is just using an existing file on disk
    var img = Image.FromFile("myimage.jpg");
    using (var g = Graphics.FromImage(img))
    {
        g.DrawLine(Pens.AliceBlue, new Point(), new Point(img.Width - 1, img.Height - 1));
    }
    this.BackgroundImage = img;
}

这将从左上角到右下角绘制AliceBlue线。

您可以为图像创建图形对象,然后在图像上绘制这些点。这确实使它们永久存在。像这样:

public void ImageDrawing()
{
    // NOTE: There are several ways you can load an image
    // this is just using an existing file on disk
    var img = Image.FromFile("myimage.jpg");
    using (var g = Graphics.FromImage(img))
    {
        g.DrawLine(Pens.AliceBlue, new Point(), new Point(img.Width - 1, img.Height - 1));
    }
    this.BackgroundImage = img;
}

这将从左上角到右下角绘制一条AliceBlue线。

在您的情况下,只需将点打印代码放在表单的事件处理程序上即可。由于表单重新绘制例程,您的点会消失。在您的情况下,只需将点绘制代码放入表单的事件处理程序中即可。由于表单重新绘制例程,您的点消失