[开发笔记]-实现winform半透明毛玻璃效果
2024-10-21 19:32:22
亲测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 = ;
MARGINS mg = new MARGINS(); //定义透明扩展区域的大小,这里全部-1,即全部透明
mg.m_Buttom = -;
mg.m_Left = -;
mg.m_Right = -;
mg.m_Top = -; //判断是否Vista及以上的系统
if (System.Environment.OSVersion.Version.Major >= )
{
DwmIsCompositionEnabled(ref en); //检测Aero是否为打开
if (en > )
{
DwmExtendFrameIntoClientArea(this.Handle, ref mg); //透明
} } this.Paint += new PaintEventHandler(Form1_Paint); } private void Form1_Paint(object sender, PaintEventArgs e)
{
if (en > )
{
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下的效果:
转载请注明出处。
最新文章
- 【项目】百度搜索广告CTR预估
- 轻松3步实现c#windowsform窗体美化
- SQL server2000更改数据库名称
- 13,SFDC 管理员篇 - 移动客户端
- Apache 配置 Basic 认证
- css+div盒模型研究笔记
- Java 8开发的4大顶级技巧
- uImage、zImage、bzImage、vlinzx区别
- 为什么margin-top不是作用于父元素
- 使用ProcDump在程序没有响应时自动收集dump
- 那天有个小孩跟我说LINQ(三)转载
- js获取css属性方法
- js登录页面的 回车事件
- jQuery解析JSON的问题
- 26.QT-模型视图之自定义委托
- 7.8CSS部分的学习!
- Delphi XE5 for Android (十一)
- linux下搭建生成HLS所需的.ts和.m3u8文件
- 在CentOS7.4上手动编译安装Mysql-5.7.20
- Jmeter高阶学习,运用NotePad++编写工程,随意复制多个工程到同一个工程