如何在.net 2.0中的 Windows窗体应用程序中提供Vista或Mac OS X样式的玻璃效果? 这是使用与Vista DWM(桌面窗口管理器)API的互操作完成的. 例如,导入这些功能: [DllImport("dwmapi.dll")]static extern
例如,导入这些功能:
[DllImport("dwmapi.dll")] static extern void DwmExtendFrameIntoClientArea(IntPtr hWnd, ref Margins pMargins); [StructLayout(LayoutKind.Sequential)] struct Margins { public int cxLeftWidth; public int cxRightWidth; public int cyTopHeight; public int cyBottomHeight; }
然后你可以使用它从窗口顶部“拉下”玻璃到客户区:
GlassMargins.Top = 40; GlassMargins.Left = 0; GlassMargins.Right = 0; GlassMargins.Bottom = 0; DwmExtendFrameIntoClientArea(this.Handle, ref GlassMargins);
从这里开始,您可以继续执行其他操作,例如在玻璃上绘制文本或图像,或者在其上放置控件,例如Office 2007样式的应用程序按钮.