Как убедиться, что эффект Aero включен? - PullRequest
4 голосов
/ 25 февраля 2011

Есть ли какой-нибудь API или что-то, что мы уверены, эффект Glass уже активирован? В некоторых кодах, которые я видел, если DllNotFoundException выдает, то они удостоверяются, что он не активен или не существует. есть ли лучший или стандартный способ?

Это решение для использования Aero Effect для увеличения площади стекла в WPF .

1 Ответ

10 голосов
/ 25 февраля 2011

На на этой странице MSDN предлагается, чтобы вы могли обнаружить стекло, используя DwmIsCompositionEnabled :

При изменении состояния композиции рабочего стола появляется сообщение WM_DWMCOMPOSITIONCHANGEDвещания.Нет параметров, сообщающих вам, включен он или нет, поэтому вы можете вызвать DwmIsCompositionEnabled, если вам интересно.Код для выполнения проверки прост: сложная часть определяет, как вы хотите, чтобы окно выглядело, если композиция отключена.

[DllImport("dwmapi.dll", PreserveSig = false)]
public static extern bool DwmIsCompositionEnabled();

// Check to see if composition is Enabled
if (Environment.OSVersion.Version.Major >= 6 && DwmIsCompositionEnabled())
{
    // enable glass rendering
}
else
{
    // fallback rendering
}

Однако я не уверен, что вы можете "Включить Aero"."но" Отключить стекло "и, если да, каков будет результат метода.

...