Как я могу получить уведомление, когда Windows XP затеняет экран до серого? - PullRequest
2 голосов
/ 29 апреля 2009

У нас есть приложение, разработанное на C # с WPF (.NET Framework 3.0)

Главное окно имеет стеклянную рамку, а дочернее окно, содержащее веб-браузер, центрируется внутри него:

WPF main window 
  -> Child window - frame control 
    -> Page 
      -> WindowsFormsHost
        -> WebBrowser

Поскольку мы использовали .NET 3.0, мы должны поместить WebBrowser в WindowsFormsHost, и он не сможет отобразиться, если мы установим для свойства окна AllowTransparency значение true.

Теперь в Windows XP, когда пользователь нажимает кнопку «Завершение работы» в меню «Пуск», отображается диалоговое окно с различными вариантами (выключение, перезапуск и т. Д.), В то время как за ним кажется, что весь рабочий стол исчезает от цвета к оттенкам серый. Когда это происходит, наше главное окно становится скрытым, в то время как окно страницы все еще отображается на экране.

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

1 Ответ

1 голос
/ 29 апреля 2009

Как я знаю, нет способа получить уведомление, когда Windows выцветает на экране серым Класс System.SystemEvents также не имеет такого события.

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