四、镂空窗体
例子下载
如果没有积分,可以关注公众号找一下【大鱼code】
直接贴效果图吧:
1、控件的透明
[外链图片转存中…(img-d0Kky9yO-1655564321951)]
2、窗体的透明
[外链图片转存中…(img-zF1WTwWl-1655564321952)]
代码如下:
public partial class Form1 : Form
{public Form1(){InitializeComponent();SetWindowLong(Handle, GWL_EXSTYLE, WS_EX_LAYERED);SetLayeredWindowAttributes(Handle, 0x00FF00, 255, LWA_COLORKEY);//替换某种颜色为透明(0x00FF00:绿色)}private const uint WS_EX_LAYERED = 0x80000;//异形窗体特效的实现private const int GWL_EXSTYLE = -20;//设定一个新的扩展风格private const int LWA_COLORKEY = 1;//透明方式[DllImport("user32", EntryPoint = "SetWindowLong")]//改变指定窗口的属性private static extern uint SetWindowLong(IntPtr hwnd, int nIndex, uint dwNewLong);[DllImport("user32", EntryPoint = "SetLayeredWindowAttributes")]//设置分层窗口透明度private static extern int SetLayeredWindowAttributes(IntPtr hwnd, int crKey, int bAlpha, int dwFlags);private void Form1_Load(object sender, EventArgs e){//TransparencyKey = BackColor;}
}
注意:
TransparencyKey = BackColor;
这句代码可以使窗口透明。