Как нарисовать текст на картинке? - PullRequest
12 голосов
/ 11 мая 2009

Я погуглил «Рисование текста в картинке C #», но не смог найти ничего полезного. Затем я погуглил «Рисование текста в форме C #» и нашел какой-то код, но он не работает так, как я хочу, чтобы он работал.

    private void DrawText()
    {
        Graphics grf = this.CreateGraphics();
        try
        {
            grf.Clear(Color.White);
            using (Font myFont = new Font("Arial", 14))
            {
                grf.DrawString("Hello .NET Guide!", myFont, Brushes.Green, new PointF(2, 2));
            }
        }
        finally
        {
            grf.Dispose();
        }
    }

Когда я вызываю функцию, цвет фона формы становится белым (по умолчанию он черный).

Мои вопросы:

1: это будет работать на картинке?

2: Как решить проблему?

1 Ответ

34 голосов
/ 11 мая 2009

Вы не хотите, чтобы этот вызов Clear () - поэтому он делает фон белым, и он закроет вашу картинку.

Вы хотите использовать событие Paint в PictureBox. Вы получаете графическую ссылку из e.Graphics, а затем используете DrawString (), имеющуюся в вашем образце.

Вот пример. Просто добавьте графическое поле в форму и добавьте обработчик события Paint:

private void pictureBox1_Paint(object sender, PaintEventArgs e)
{
    using (Font myFont = new Font("Arial", 14))
    {
        e.Graphics.DrawString("Hello .NET Guide!", myFont, Brushes.Green, new Point(2, 2));
    }
}

(Обратите внимание, что вы не увидите текст во время разработки - вам нужно будет запустить программу для его рисования).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...