有没有什么api或者我们确定的东西,玻璃效果已经被激活了?在我看到的一些代码中,如果DllNotFoundException抛出,那么他们会确保它不是活动的或者不存在。有没有更好的或标准的方法?
这是使用Aero Effect to extend glass area in WPF的解决方案。
发布于 2011-02-25 15:03:22
在this MSDN page上,它建议你可以使用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”而“禁用眼镜”,如果可以,方法的结果会是什么。
https://stackoverflow.com/questions/5114389
复制相似问题