目录
1,窗体闪烁。
2,透明非矩形的窗体。
3,窗口显示,退出呈现平滑效果。
4,窗体不在任务栏中显示:
1,窗体闪烁。
/// <summary>/// 窗体闪烁/// </summary>/// <param name="handle">将要闪烁的窗体</param>/// <param name="blnvert">是否恢复状态</param>/// <returns></returns>[System.Runtime.InteropServices.DllImport("user32.dll")]static extern bool FlashWindow(IntPtr handle, bool blnvert);
2,透明非矩形的窗体。
效果:
在线免费抠图网站:在线抠图软件_图片去除背景 | remove.bg – remove.bg
public partial class Form1 : Form{Bitmap bit;public Form1(){InitializeComponent();}protected override void OnPaint(PaintEventArgs e){//e.Graphics.DrawEllipse(new Pen(Color.Red,2), new RectangleF(0, 0, this.Width-2, this.Height-2));e.Graphics.DrawImage(bit, new Point(0, 0));e.Graphics.DrawString("Good", new Font("华文行楷", 15), Brushes.Red, new PointF(10, 10));}private void Form1_Load(object sender, EventArgs e){bit = new Bitmap("../../1.png");bit.MakeTransparent(Color.Blue);this.TransparencyKey = Control.DefaultBackColor;//必须对该属性进行设置否则背景不透明}}
3,窗口显示,退出呈现平滑效果。
/// <summary>/// 窗口显示关闭动画/// </summary>class PopUpWindowAnimation{/// <summary>/// 窗口打开关闭动画/// </summary>/// <param name="hander">窗口句柄</param>/// <param name="duration">持续时间</param>/// <param name="effert">效果</param>/// <returns></returns>public static bool PopWindow(IntPtr handle,int duration, Effect effert){bool result = AnimateWindow(handle, duration, (int)effert);return result;}/// <summary>/// 实现窗口的动画效果/// </summary>/// <param name="hwnd">窗口句柄</param>/// <param name="dwTime">动画持续的时间</param>/// <param name="dwFlags">动画类型选项</param>/// <returns></returns>[DllImport("user32.dll")]static extern bool AnimateWindow(IntPtr hwnd, int dwTime, int dwFlags);}/// <summary>/// 动画效果/// </summary>[Flags]public enum Effect{/// <summary>/// 滑动效果。默认为滚动动画类型,当使用AW_CENTER标志时,这个标志被忽略/// </summary>AW_SLIDE = 0X40000,/// <summary>/// 激活窗口。在使用AW_HIDE标志后不要使用这个标志/// </summary>AW_ACTIVATE = 0X20000,/// <summary>/// 使用淡入效果。只有当hWnd为顶层窗口时才可以使用此标志/// </summary>AW_BLEND = 0X80000,/// <summary>/// 隐藏窗口,默认则显示窗口/// </summary>AW_HIDE = 0X10000,/// <summary>///若使用AW_HIDE标志,则使窗口向内重叠;若使用AW_HIDE标志,则使窗口向外扩展。/// </summary>AW_CENTER = 0X10,/// <summary>/// 自左向右显示窗口。该标志可以在滚动动画和滑动动画中使用。当使用AW_CENTER标志时,该标志/// 被忽略/// </summary>AW_HOR_POSITIVE = 0X1,/// <summary>/// 自右向左显示窗口。该标志可以在滚动动画和滑动动画中使用。当使用AW_CENTER标志时,该标志/// 被忽略/// </summary>AW_HOR_NEGATIVE = 0X2,/// <summary>/// 自上向下显示窗口。该标志可以在滚动动画和滑动动画中使用。当使用AW_CENTER标志时,该标志/// 被忽略/// </summary>AW_VER_POSITIVE = 0X4,/// <summary>/// 自下向上显示窗口。该标志可以在滚动动画和滑动动画中使用。当使用AW_CENTER标志时,该标志/// 被忽略/// </summary>AW_VER_NEGATIVE = 0X8}
4,窗体不在任务栏中显示:
设置窗体属性:
FormBorderStyle | ShowInTaskBar | 效果 |
---|---|---|
SizableToolWindow | True | 该窗体不出现在Alt+Tab快捷键的预览窗口中,但任务栏中依然有该窗体 |
SizableToolWindow | False | 该窗体不出现在Alt+Tab快捷键的预览窗口中,也不出现在任务栏中。 |