Окно WPF становится черным - PullRequest
2 голосов
/ 21 июля 2009

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

Обновление (23.07): Я избежал проблемы в этой конкретной области, но я все еще не знаю много об этом. У меня был ListBox с ContextMenu поверх него. Видимость ListBox была ограничена определенным свойством, когда у него было одно значение, ListBox был Visible, а когда он имел другое значение, он был свернут. MenuItem ContextMenu Изменил свойство, которое, в свою очередь, изменило видимость. Иногда, когда видимость изменялась на Свернутый, весь экран становился черным. Поэкспериментировав, я заметил, что в Hidden этого не происходит, поэтому теперь я использую Hidden вместо Collapsed. Я предполагаю, что перестановка органов управления после свертывания в середине была проблемой.

Ответы [ 2 ]

1 голос
/ 28 июля 2009

Прежде всего, я понял, что экран становится черным только тогда, когда у меня есть какое-то всплывающее окно (ContextMenu, ComboBox), и пока оно открыто, я изменяю видимость чего-то другого.


Очевидно, это потому, что я (и вся моя команда) использую 2 экрана компьютера с драйвером ATI Radeon X1300 Pro. Если вы отключите второй экран, все в порядке. В любом случае, спасибо ...

1 голос
/ 21 июля 2009

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

Чтобы обойти это, я помещаю большую часть своей обработки в отдельный поток, чтобы гарантировать, что пользовательский интерфейс никогда не будет обработан другой обработкой.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...