当前位置: 移动技术网 > IT编程>开发语言>c# > C# WinForm实现Win7 Aero透明效果代码

C# WinForm实现Win7 Aero透明效果代码

2019年07月18日  | 移动技术网IT编程  | 我要评论

在vista系统之后,微软为窗体程序提供了aero磨砂的效果,如下图。那么用c#如何来实现这种磨砂效果呢?

背景为我的桌面
那先上代码吧:

[structlayout(layoutkind.sequential)] 
public struct margins 
{ 
  public int left; 
  public int right; 
  public int top; 
  public int bottom; 
} 
 
[dllimport("dwmapi.dll", preservesig = false)] 
static extern void dwmextendframeintoclientarea(intptr hwnd, ref margins margins); 
 
[dllimport("dwmapi.dll", preservesig = false)] 
static extern bool dwmiscompositionenabled(); 
 
public form1() 
{ 
  initializecomponent(); 
} 
 
protected override void onload(eventargs e) 
{ 
  if (dwmiscompositionenabled()) 
  { 
    margins margins = new margins(); 
    margins.right = margins.left = margins.top = margins.bottom = this.width + this.height; 
    dwmextendframeintoclientarea(this.handle, ref margins); 
  } 
  base.onload(e); 
} 
 
protected override void onpaintbackground(painteventargs e) 
{ 
  base.onpaintbackground(e); 
  if (dwmiscompositionenabled()) 
  { 
    e.graphics.clear(color.black); 
  } 
} 

这中效果的实现主要是调用了系统的dwmapi.dll。

dwmapi.dll是microsoft desktop window manager api(桌面窗口管理器dwm 的公用界面)的动态链接库,正常文件,主要用作桌面效果的api。dwm 是一种新界面,在除 windows vista home basic 之外的所有 windows vista 版本中均提供 dwm 界面。

所以这种效果只能在vista之后的系统中使用。

如对本文有疑问, 点击进行留言回复!!

相关文章:

验证码:
移动技术网