How make sure Aero effect is enabled?

纵饮孤独 提交于 2019-12-19 09:20:15

问题


Is there any api or something that we make sure, Glass effect is already actived? In some codes that i saw, if DllNotFoundException throws, then they make sure it's not active or not exists. is there a better or standard way?

This is the solution for Using Aero Effect to extend glass area in WPF.


回答1:


On this MSDN page it suggests you can detect Glass using DwmIsCompositionEnabled:

When the status of desktop composition is changed, a WM_DWMCOMPOSITIONCHANGED message is broadcast. There are no parameters telling you if it's being enabled or disabled, so it's up to you to call DwmIsCompositionEnabled if you're interested. The code to do the check is straightforward-the tricky part is deciding how you want your window to look if composition is disabled.

[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
}

However I'm not sure whether you can "Enable Aero" but "Disable Glass" and if so, what the result of the method would be.



来源:https://stackoverflow.com/questions/5114389/how-make-sure-aero-effect-is-enabled

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!