C#常见Winform窗体效果详解

 更新时间:2024年04月03日 09:23:08   作者:lingxiao16888  
这篇文章主要为大家详细介绍了C#中常见Winform窗体效果实现,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下

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.透明非矩形的窗体

效果:

 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.窗体不在任务栏中显示

设置窗体属性:

FormBorderStyleShowInTaskBar效果
SizableToolWindowTrue该窗体不出现在Alt+Tab快捷键的预览窗口中,但任务栏中依然有该窗体
SizableToolWindowFalse该窗体不出现在Alt+Tab快捷键的预览窗口中,也不出现在任务栏中

到此这篇关于C#常见Winform窗体效果详解的文章就介绍到这了,更多相关C# Winform窗体效果内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C#中迭代器和分部类的使用

    C#中迭代器和分部类的使用

    迭代器和分部类是C#语言的两种重要特性,本文主要介绍了C#中迭代器和分部类的使用,具有一定的参考价值,感兴趣的可以了解一下
    2024-01-01
  • WPF封装实现懒加载下拉列表控件(支持搜索)

    WPF封装实现懒加载下拉列表控件(支持搜索)

    WPF这种懒加载的控件未找到现成可用的组件,所以本文我们就自己封装一个懒加载和支持模糊过滤的下拉列表控件,有需要的小伙伴可以参考一下
    2025-04-04
  • C#窗体间通讯处理的几种方法总结

    C#窗体间通讯处理的几种方法总结

    这篇文章主要介绍了
    2013-11-11
  • C#调用微信接口的相关代码

    C#调用微信接口的相关代码

    这篇文章主要为大家详细介绍了C#调用微信接口的相关代码,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-07-07
  • C#实现图片边缘锐化的完整代码

    C#实现图片边缘锐化的完整代码

    在 C# 中进行图像的边缘锐化,可以通过卷积滤波器实现,边缘锐化的基本思想是通过卷积核(也称为滤波器或掩模)来增强图像中的边缘,下面是如何在 C# 中实现这一操作的完整代码,需要的朋友可以参考下
    2024-06-06
  • C# 去除首尾字符或字符串的方法

    C# 去除首尾字符或字符串的方法

    C# 去除首尾字符或字符串的方法,需要的朋友可以参考一下
    2013-04-04
  • C# try catch 使用实例详解

    C# try catch 使用实例详解

    在编程中, try-catch-throw 是一种常见的错误处理模式,这三个关键字通常一起使用,以捕获异常、处理异常和重新抛出异常,这篇文章主要介绍了C# try catch 使用,需要的朋友可以参考下
    2023-09-09
  • 为Xamarin.Forms的导航栏增加搜索功能

    为Xamarin.Forms的导航栏增加搜索功能

    这篇文章介绍了为Xamarin.Forms的导航栏增加搜索功能的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-01-01
  • C#处理Access中事务的方法

    C#处理Access中事务的方法

    这篇文章主要介绍了C#处理Access中事务的方法,涉及C#中事物的实现及使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-10-10
  • C# 控制台实现一次性输入多行的操作

    C# 控制台实现一次性输入多行的操作

    这篇文章主要介绍了C# 控制台实现一次性输入多行的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-01-01

最新评论