如何确保启用Aero效果?

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

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

在此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 } 

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