C#常见Winform窗体效果

目录

1,窗体闪烁。

2,透明非矩形的窗体。

3,窗口显示,退出呈现平滑效果。

4,窗体不在任务栏中显示:


1,窗体闪烁。

cs 复制代码
/// <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

cs 复制代码
 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,窗口显示,退出呈现平滑效果。

cs 复制代码
 /// <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快捷键的预览窗口中,也不出现在任务栏中。
相关推荐
阿巴~阿巴~16 分钟前
Git版本控制完全指南:从入门到实战(简单版)
linux·服务器·git
Cx330❀18 分钟前
Linux命名管道(FIFO)通信:从原理到实操,一文搞懂跨进程通信
大数据·linux·运维·服务器·elasticsearch·搜索引擎
唐青枫21 分钟前
C#.NET ObjectPool 深入解析:对象复用、池化策略与使用边界
c#·.net
子兮曰32 分钟前
Bun v1.3.12 深度解析:新特性、性能优化与实战指南
前端·typescript·bun
AI、少年郎1 小时前
MiniMind第 2 篇:破除大模型 “神秘感“, 环境搭建|Win/Linux 本地快速部署
linux·运维·服务器·ai·大模型训练·大模型微调·大模型原理
2401_885885041 小时前
易语言彩信接口怎么调用?E语言Post实现多媒体数据批量下发
前端
a1117761 小时前
Three.js 的前端 WebGL 页面合集(日本 开源项目)
前端·javascript·webgl
Kk.08021 小时前
项目《基于Linux下的mybash命令解释器》(一)
前端·javascript·算法
彭泽布衣2 小时前
Linux异常文件名文件如何删除
linux·运维·服务器
优泽云安全2 小时前
如何选择IRCS云信息安全管理系统 IRCS云资源评测
linux·服务器·安全·安全架构