Итак, я довольно мало знаком с разработкой форм Windows.
Я пытаюсь создать компонент "эй, я занят чем-то", который просто вращает форму. Я хочу, чтобы этот элемент управления был временным и рисовал поверх любых других элементов управления. Класс наследуется напрямую от Control.
Итак, у меня есть это в конструкторе:
SetStyle(ControlStyles.Opaque, true);
и это:
protected override CreateParams CreateParams
{
get
{
CreateParams parms = base.CreateParams;
parms.ExStyle |= 0x20;
return parms;
}
}
Это дает мне элемент управления, который будет рисовать поверх других элементов управления.
Теперь моя проблема заключается в следующем. Я перекрашиваю элемент управления несколько раз в секунду, чтобы создать плавную анимацию. Однако я не могу понять, как очистить то, что было нарисовано в предыдущем кадре. Использование e.Graphics.Clear(Color.Transparent)
в OnPaint
делает весь элемент управления черным.
Есть ли способ просто очистить нарисованное содержимое элемента управления?
Я заметил, что изменение размера элемента управления очистит фон.
Вещи, которые не работают
- Переопределение OnPaintBackground ничего не делать. Или просто вызов base.OnPaintBackground. Те же результаты.