Как нарисовать текст на изображении в форме на событие нажатия мыши в C # - PullRequest
2 голосов
/ 06 сентября 2011

Я хочу нарисовать текст на изображении в C # с помощью метода drawstring. Но как я могу получить координаты позиции, по которой щелкнули, и как я могу связать это с размером изображения.Пожалуйста, помогите.

Ответы [ 2 ]

1 голос
/ 06 сентября 2011

Рабочий пример:

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);
0 голосов
/ 06 сентября 2011

Если бы я делал это, я следовал бы руководству этого парня;

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

и в его функции генерировал бы постбэк ajax с координатамиСтрока запроса.Тогда делай с ними все, что тебе нужно.Хотя для такого рода вещей лучше использовать сценарии на стороне клиента.

...