Почему это окно визуализации WinForms при перетаскивании? - PullRequest
0 голосов
/ 12 мая 2018

Я поддерживаю приложение .NET 4 WinForms, написанное на VB.NET и созданное с Visual Studio 2015. В Windows 7 все хорошо, но в нашем тестировании Windows 10 есть проблема рендеринга с окном формы в главное окно приложения. Бывает на нескольких машинах (все ноутбуки Dell). Быстрое перетаскивание окна формы по верхним или нижним краям главного окна (выделено на скриншоте желтым цветом) приводит к его волнению и оставлению графических артефактов, например:

enter image description here

Существуют ли свойства или настройки окна, которые можно настроить для предотвращения этого?

спасибо!

Ответы [ 2 ]

0 голосов
/ 20 мая 2018

Каждый элемент управления WinForms имеет свойство с именем DoubleBuffered.Он предназначен для уменьшения таких нежелательных эффектов.Когда двойная буферизация включена, операции рендеринга сначала выполняются в памяти.Тогда только последний применяется к графическому устройству.Подробнее здесь .

Двойная буферизация по умолчанию отключена для форм.Поэтому установка свойства DoubleBuffered для вашей формы на true решит проблему.

ОБНОВЛЕНИЕ

Я неправильно прочитал комментарий о том, что DoubleBuffered уже установлен.Убедитесь, что свойство DoubleBuffered установлено как для дочерней, так и для родительской форм MDI.Кроме того, убедитесь, что драйвер для видеокарты предоставлен производителем, а не драйвером по умолчанию.

0 голосов
/ 18 мая 2018

Проблемы с перерисовкой обычно связаны с тем, что основной поток может быть заблокирован при выполнении какого-либо процесса и не может перерисоваться.Используете ли вы многопоточный подход в вашем приложении.Хорошей отправной точкой было бы проверить, не блокирует ли что-либо основной поток.

...