[开发笔记]-实现winform半透明毛玻璃效果
亲测win7下可用,win8下由于系统不支持Aero效果,所以效果不是半透明的。
代码:
博客园插入不了代码了。。。。。
public partial class Form1 : Form { int en; public struct MARGINS { public int m_Left; public int m_Right; public int m_Top; public int m_Buttom; }; [DllImport("dwmapi.dll")] private static extern void DwmIsCompositionEnabled(ref int enabledptr); [DllImport("dwmapi.dll")] private static extern void DwmExtendFrameIntoClientArea(IntPtr hWnd, ref MARGINS margin); public Form1() { InitializeComponent(); en = 0; MARGINS mg = new MARGINS(); //定义透明扩展区域的大小,这里全部-1,即全部透明 mg.m_Buttom = -1; mg.m_Left = -1; mg.m_Right = -1; mg.m_Top = -1; //判断是否Vista及以上的系统 if (System.Environment.OSVersion.Version.Major >= 6) { DwmIsCompositionEnabled(ref en); //检测Aero是否为打开 if (en > 0) { DwmExtendFrameIntoClientArea(this.Handle, ref mg); //透明 } } this.Paint += new PaintEventHandler(Form1_Paint); } private void Form1_Paint(object sender, PaintEventArgs e) { if (en > 0) { Graphics g = e.Graphics; SolidBrush bsh = new SolidBrush(Color.Black); g.FillRectangle(bsh, this.ClientRectangle); bsh.Dispose(); } } private void Form1_Load(object sender, EventArgs e) { } }
win7下的效果为半透明毛玻璃效果,win8下的效果:
转载请注明出处。

作者:酷小孩
出处:http://www.cnblogs.com/babycool/
本文首发博客园,版权归作者跟博客园共有。
转载必须保留本段声明,并在页面显著位置给出本文链接,否则保留追究法律责任的权利。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 地球OL攻略 —— 某应届生求职总结
· 提示词工程——AI应用必不可少的技术
· Open-Sora 2.0 重磅开源!
· 周边上新:园子的第一款马克杯温暖上架