У меня есть класс, который принимает Control
и рисует сгенерированные изображения к нему. В своем коде приложения для этого я использую Panel
элемент управления - который, кажется, работает хорошо, за исключением того, что я получаю много мерцаний на элементе управления, когда изображение перерисовывается. Я думаю, что решение состоит в том, чтобы включить двойную буферизацию на элементе управления. Я делаю это с помощью следующего кода:
System.Reflection.PropertyInfo aProp =
typeof(System.Windows.Forms.Control).GetProperty(
"DoubleBuffered",
System.Reflection.BindingFlags.NonPublic |
System.Reflection.BindingFlags.Instance);
aProp.SetValue(drawControl, true, null);
После добавления этого кода изображение рисуется, а затем сразу же заменяется цветом фона серой кнопки по умолчанию - как будто система рисует поверх моего собственного контента.
Я помню, как где-то видел свойство, которое говорит системе никогда не рисовать элемент управления (что было бы идеально для меня, так как я заполняю весь элемент управления содержимым), но теперь я не могу его найти. Есть ли такое свойство, и если да, то как его включить?
Я использую C # с .NET Framework версии 4.0.