如何在C#鼠标单击事件的表单中的图像上绘制文本

时间:2011-09-06 16:13:33

标签: c# .net image graphics drawing

我想使用方法drawtring在C#中的图像中绘制文本。但是我如何获得点击位置的坐标以及如何将其与图像的尺寸相关联。 请帮助。

2 个答案:

答案 0 :(得分:1)

工作示例:

private Bitmap _bmp = new Bitmap(250, 250);

public Form1()
{
  InitializeComponent();   

  panel1.MouseDown += new MouseEventHandler(panel1_MouseDown);
  panel1.Paint += new PaintEventHandler(panel1_Paint);

  using (Graphics g = Graphics.FromImage(_bmp))
    g.Clear(SystemColors.Window);
}

private void panel1_Paint(object sender, PaintEventArgs e)
{
  e.Graphics.DrawImage(_bmp, new Point(0, 0));

}

private void panel1_MouseDown(object sender, MouseEventArgs e)
{
  using (Graphics g = Graphics.FromImage(_bmp))
  {
    g.DrawString("Mouse Clicked Here!", panel1.Font, Brushes.Black, e.Location);
  }
  panel1.Invalidate();
}

您可能希望使用TextRenderer而不是DrawString。 DrawString有问题。

TextRenderer.DrawText(g, "Mouse Clicked Here!", panel1.Font, e.Location, Color.Black);

答案 1 :(得分:0)

如果我这样做,我会按照这个人的教程;

http://www.emanueleferonato.com/2006/09/02/click-image-and-get-coordinates-with-javascript/

并在他的函数中,使用查询字符串中的坐标生成ajax post-back。然后做你需要做的任何事情。你会更好地使用客户端脚本来做这类事情。