Черная граница при изменении размера

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

Вот так:

Это известная проблема? любой простой обходной путь?

РЕДАКТИРОВАТЬ 1:

Кажется, это связано с графическим драйвером, я работаю только на ноутбуках со слабыми картами GFS, так есть ли у кого-нибудь еще эта проблема? (Я также использую Win7 SP1)

2 ответа

Решение

Если вы измените размер окна, оно должно перерисоваться. Это занимает некоторое время, а также происходит после того, как оконный менеджер уже изменил размер вашего окна и показывает его; в этом случае вы получите черную рамку в WPF и одну с обычным фоном окна (обычно серым) в Windows Forms.

Обычно все, на что можно надеяться, это то, что компьютер достаточно быстр с перерисовкой, чтобы не показывать его.

Это известная проблема, и вряд ли она будет исправлена. Существует обходной путь, который уменьшает влияние этой проблемы, если ваш фон достаточно однороден: /questions/11114688/kak-ispravit-izmenenie-razmera-formyi-wpf-otstayuschie-elementyi-upravleniya-i-chernyij-fon/11114702#11114702

Мое понимание основной причины заключается в том, что WPF контролирует отставание в изменении размеров: WPF нарисует их в "неправильном" месте на короткое время. Смотрите связанный вопрос для демонстрации.

Другие вопросы по тегам