Графика не отображается в C # - PullRequest
0 голосов
/ 19 июля 2011

У меня есть изображение, в котором есть изображение, а вверху этого изображения я рисую несколько эллипсов.Тем не менее, только некоторые из эллипсов появляются.Код выглядит примерно так:

Graphics g = Graphics.FromHwnd(pictureBox1.Handle); 
g.FillEllipse(redBrush, rfidNode1.readerPos.X, rfidNode1.readerPos.Y, 15, 15);

РЕДАКТИРОВАТЬ: извините, я дважды скопировал и вставил последнюю строку ... так что только одна строка заполняет эллипс.Кроме того, x и y находятся в пределах диапазона графического блока.

Ответы [ 5 ]

0 голосов
/ 19 июля 2011

Для рисования на элементе управления попробуйте зарегистрироваться в событии paint и использовать графический объект, предоставленный в аргументах события paint.

Смотрите здесь для деталей и примера.

0 голосов
/ 19 июля 2011

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

Учебник - Рисование с помощью C #

0 голосов
/ 19 июля 2011

Если X и Y одинаковы, вы рисуете два эллипса один поверх другого, поэтому виден только последний.Кроме того, возможно, что X и Y выходят за пределы графического блока?

0 голосов
/ 19 июля 2011

Не могли бы вы попробовать что-нибудь подобное?(при необходимости измените размеры)

Bitmap bmp = new Bitmap(pictureBox1.Width, pictureBox1.Height);
Graphics g = Graphics.FromImage(bmp);
g.FillEllipse(redBrush, rfidNode1.readerPos.X, rfidNode1.readerPos.Y, 15, 15);
pictureBox1.Image = bmp;

Или, может быть, я пропустил ваши намерения?

0 голосов
/ 19 июля 2011

Я не очень уверен, если это действительно возможно безопасным способом рисовать над картинкой.Под безопасностью я подразумеваю: быть уверенным, что все ваши эллипсы видны, когда вы хотите.Если вам нужно какое-то нестандартное поведение, PictureBox, по моему мнению, не очень хорошее решение.

Как решение, я бы предложил нарисовать изображение вручную в том месте, где теперь у вас есть окно с изображением.

Надеюсь, это поможет.

С уважением.

...