复制:
如果我使用 Winforms 并用它编写一个 win32 应用程序,我可以在 Vista 中看到 Aero 玻璃效果,但在 XP 中看不到。
如何在不同平台上实现相同的外观?我正在使用 WPF。
作为一个附带问题,微软是否使用 WPF 编写了 Aero 玻璃效果?如果是这样,玻璃效果不应该是其他平台上的默认 WPF 外观吗?
如果我使用 Winforms 并用它编写一个 win32 应用程序,我可以在 Vista 中看到 Aero 玻璃效果,但在 XP 中看不到。
如何在不同平台上实现相同的外观?我正在使用 WPF。
作为一个附带问题,微软是否使用 WPF 编写了 Aero 玻璃效果?如果是这样,玻璃效果不应该是其他平台上的默认 WPF 外观吗?
您指的是什么“航空效应”?如果你说的是窗户玻璃,那恐怕你就不走运了,因为只有通过 Vista 的桌面窗口管理器才能实现玻璃效果。
如果您只是在寻找窗口透明度、圆角等,那么这在 XP 中肯定是可能的。查看这篇文章了解更多信息。
好的,所以大多数 DWM 的东西都是由一个名为 dwmapi.dll 的 DLL 处理的,它们都在 C++ COM 中,因为这是 Microsoft 编写 API 的方式,你可能已经注意到,要调用 API 中的方法,你必须使用一些未编组的布尔类型等,这是因为它必须到达非托管代码,一些需要发生的操作对于 .NET 来说太危险而无法在不干扰的情况下进行监视,您可能还会注意到所有返回类型实际上并不是返回您将 Vars 作为“输出”类型放入,以便代码可以在内存中修改它们,然后可以将该信息读回托管的 .NET 代码中。至于在 Windows XP 中获得类似效果的方法,
希望这会有所帮助:P
西蒙