Почему Graphics.Clear не работает должным образом в моем элементе управления пользовательскими формами Windows?C#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Почему Graphics.Clear не работает должным образом в моем элементе управления пользовательскими формами Windows?

Сообщение Anonymous »

Насколько я понимаю, как рисовать собственный элемент управления формами Windows, нужно сначала вызвать Graphics.Clear, чтобы обновить фон элемента управления, а затем нарисовать поверх него все, что захотите. Таким образом, у меня есть следующий код для разрабатываемого мной пользовательского элемента управления:

Код: Выделить всё

internal class PictureSizeCropBox : Control {
protected override void OnPaint(PaintEventArgs ea) {
ea.Graphics.Clear(Color.Green);

Pen redPen = new(Color.Red, 1);

ea.Graphics.DrawRectangle(redPen, new Rectangle(0, 0, Width - 1, Height - 1));
}
}
Однако, когда я помещаю это в панель и мой код изменяет размер элемента управления (и панели) при изменении размера окна, я получаю этот графический эффект, когда окно увеличивается:
Изображение

Что такое Graphics.Clear делаете? Первоначально он рисует зеленый фон, но, как ни странно, на самом деле он не очищает старые данные, отображаемые элементом управления. Как правильно рисовать элементы управления формами Windows, чтобы они правильно перерисовывались при изменении размера, очищая старую визуализацию? Нужно ли мне просто нарисовать закрашенный прямоугольник для фона, и если да, то какой смысл в Graphics.Clear и когда следует его использовать?

Подробнее здесь: https://stackoverflow.com/questions/792 ... s-forms-co
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»