Как убедиться, что эффект Aero включен?

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

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

1 ответ

Решение

На этой странице 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", но "Отключить стекло", и если да, то каким будет результат метода.

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