我们确定是否有任何API或玻璃效果已经激活?在我看到的一些代码中,如果DllNotFoundException
抛出,那么它们会确保它不活动或不存在。是否有更好或更标准的方式?
这是将Aero Effect用于extend glass area in WPF的解决方案。
答案 0 :(得分:10)
在this MSDN page上,它建议您使用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”但是“禁用玻璃”,如果是,那么该方法的结果是什么。