如何确保启用Aero效果?

Jal*_*lal 4 c# wpf winapi aero dwm

是否有任何api或我们确定的东西,玻璃效果已经激活?在我看到的一些代码中,如果DllNotFoundException抛出,那么它们确保它不活动或不存在.有更好或更标准的方式吗?

这是使用Aero Effect 扩展WPF中的玻璃区域的解决方案.

Dan*_*eny 10

此MSDN页面上,它建议您可以使用DwmIsCompositionEnabled检测Glass :

更改桌面组合的状态时,将广播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
}
Run Code Online (Sandbox Code Playgroud)

但是我不确定你是否可以"启用Aero"但是"禁用玻璃",如果是这样,那么该方法的结果是什么.