今天继续研究C#的WinForm的显示动画效果。

  上次我们实现了无边框窗体的显示动画效果(见博文:基于C#的无边框窗体动画效果的完美解决方案 - 开源研究系列文章 ),这次介绍的是未在任务栏托盘中窗体的显示隐藏动画效果的实现代码。

  1、 项目目录;

  下面是项目目录,由基本的窗体和操作类组成。

  2、 代码介绍;

  代码比较简单,直接将窗体的最小化、最大化效果加入进去即可。

  

 1 /// <summary>
2 /// 显示隐藏窗体状态操作类
3 ///
4 /// 窗体的状态都通过此API进行处理
5 /// </summary>
6 internal static class ShowWindowHelper
7 {
8 /// <summary>
9 /// 设置窗体状态
10 /// </summary>
11 /// <param name="form">要设置的窗体</param>
12 /// <param name="windowState">窗体状态</param>
13 internal static void ShowWindow(Form form, ShowWindowState windowState)
14 {
15 switch (windowState)
16 {
17 case ShowWindowState.Show:
18 form.Visible = true;
19 form.WindowState = System.Windows.Forms.FormWindowState.Normal;
20 form.ShowInTaskbar = true;
21 break;
22 case ShowWindowState.Hide:
23 //这里两个Visible是为了关闭时的动画效果
24 form.Visible = false;
25 form.WindowState = System.Windows.Forms.FormWindowState.Minimized;
26 form.ShowInTaskbar = false;
27 form.Visible = false;
28 break;
29 case ShowWindowState.Min:
30 form.Visible = true;
31 form.WindowState = System.Windows.Forms.FormWindowState.Minimized;
32 break;
33 case ShowWindowState.Max:
34 form.Visible = true;
35 form.WindowState = System.Windows.Forms.FormWindowState.Maximized;
36 break;
37 case ShowWindowState.DirectShow:
38 form.Show();
39 break;
40 case ShowWindowState.DirectHide:
41 form.Hide();
42 break;
43 }
44 }
45 }

  3、 运行界面;

  因为没录制GIF,所以不提供界面了。

  4、 使用方法;

  直接将操作类放到项目里面,然后调用静态类方法即可。

  

 1 /// <summary>
2 /// 隐藏窗体按钮事件
3 /// </summary>
4 /// <param name="sender"></param>
5 /// <param name="e"></param>
6 private void btnHide_Click(object sender, EventArgs e)
7 {
8 ShowWindowHelper.ShowWindow(this, ShowWindowState.Hide);
9 }
10
11 /// <summary>
12 /// 图标单击事件
13 /// </summary>
14 /// <param name="sender"></param>
15 /// <param name="e"></param>
16 private void NIShowWindow_MouseClick(object sender, MouseEventArgs e)
17 {
18 if(e.Button == MouseButtons.Left)
19 {
20 ShowWindowHelper.ShowWindow(this, ShowWindowState.Show);
21 }
22 }
23 /// <summary>
24 /// 图标双击事件
25 /// </summary>
26 /// <param name="sender"></param>
27 /// <param name="e"></param>
28 private void NIShowWindow_MouseDoubleClick(object sender, MouseEventArgs e)
29 {
30 if (e.Button == MouseButtons.Left)
31 {
32 //这里调用Hide程序会退出,所以直接调默认的Hide函数
33 ShowWindowHelper.ShowWindow(this, ShowWindowState.DirectHide);
34 }
35 }

  5、 源码下载;

  这里提供源码例子下载:

https://download.csdn.net/download/lzhdim/88171194

  上面是笔者整理的关于C#的窗体隐藏到托盘图标中的动画效果,搭配上次的无边框窗体的效果,更好的能够对窗体的效果进行显示。提供了源码下载及例子,能够直接进行代码复用即可,希望对同样问题的读者能够解决该问题。

使用C#的窗体显示与隐藏动画效果方案 - 开源研究系列文章的更多相关文章

  1. 使用jQuery 中的显示与隐藏动画效果实现折叠下拉菜单的收缩和展开,在页面的列表中有若干项,列表的每项中有一个二级列表,二级列表默认为隐藏状态。点击列表的项,切换二级列表的显示或隐藏状态

    查看本章节 查看作业目录 需求说明: 使用jQuery 中的显示与隐藏动画效果实现折叠下拉菜单的收缩和展开,在页面的列表中有若干项,列表的每项中有一个二级列表,二级列表默认为隐藏状态.点击列表的项,切 ...

  2. AngularJS中实现显示或隐藏动画效果的3种方式

    本篇体验在AngularJS中实现在"显示/隐藏"这2种状态切换间添加动画效果. 通过CSS方式实现显示/隐藏动画效果 思路: →npm install angular-anima ...

  3. android view控件的显示和隐藏动画效果

    // 显示动画 mShowAction = new TranslateAnimation(Animation.RELATIVE_TO_SELF, 0.0f, Animation.RELATIVE_TO ...

  4. 教你三种jQuery框架实现元素显示及隐藏动画方式

    摘要:在jQuery框架中对元素对象进行显示和隐藏有三种方式,分别是"默认方式显示和隐藏"."滑动方式显示和隐藏"."淡入淡出显示和隐藏". ...

  5. jqury+animation+setTimeOut实现渐变显示与隐藏动画

    初始效果 实现效果 1,编写HTMl结构代码 <div class="box"> <i class="icon"></i> ...

  6. setAnimationStyle实现的popwindow显示消失的动画效果

    摘要 popwindow通过setAnimationStyle(int animationStyle)函数来设置动画效果 android:windowEnterAnimation表示进入窗口动画 an ...

  7. LayoutTransition实现显示、隐藏动画

    public class Main4Activity extends Activity { private TextView tv1; private Button button1; private ...

  8. WPF制作子窗体的弹出动画效果

    创建一个WPF应用程序WpfApplication1,新建个窗体DialogWin <Windowx:Class="WpfApplication1.DialogWin" xm ...

  9. vueJS简单的点击显示与隐藏的效果

    目前前端框架太多,接触过angular.ember,现在开始倒腾vue 此处用到v-if.v-else.v-show,v-if或让元素不在DOM上,v-show只是改变display:block属性, ...

  10. wpf image控件循环显示图片 以达到动画效果 问题及解决方案

    1>最初方案: 用wpf的image控件循环显示图片,达到动画效果,其实就是在后台代码动态改变Image.Source的值,关键代码: ; i < ; i++)//六百张图片 { Bitm ...

随机推荐

  1. cryptohack wp day(1)

    就从头开始吧 第一题 (ASCII) 一道简单的ASCII码转换,直接用题目的提示代码解就行了 ascii=[99, 114, 121, 112, 116, 111, 123, 65, 83, 67, ...

  2. Git&GitHub简介与入手(三)

    五.eclipse中的git使用 1.eclipse中本地库操作 (检测显示创建成功): (设置本地库范围签名): (一些git里的图标,保存着不同内容): https://github.com/gi ...

  3. JavaWeb之day02css与js

    目录: 1.CSS概述和与HTML的结合方式(四种)(*******) 2.CSS的基本选择器(******) 3.CSS的扩展选择器(了解) 4.CSS的盒子模型(了解) 5.CSS的布局(浮动)( ...

  4. 2020-09-10:java里Object类有哪些方法?

    福哥答案2020-09-10: registerNatives:private+static.getClass:返回此 Object 的运行时类. hashCode:返回该对象的哈希码值.equals ...

  5. 2022-03-30:有m个同样的苹果,认为苹果之间无差别, 有n个同样的盘子,认为盘子之间也无差别, 还有,比如5个苹果如果放进3个盘子, 那么1、3、1和1、1、3和3、1、1的放置方法,也认为是

    2022-03-30:有m个同样的苹果,认为苹果之间无差别, 有n个同样的盘子,认为盘子之间也无差别, 还有,比如5个苹果如果放进3个盘子, 那么1.3.1和1.1.3和3.1.1的放置方法,也认为是 ...

  6. url函数

    url() 函数看起来的格式象:url(r^/account/$', views.index, name=index),它可以接收四个参数,分别是两个必选参数:regex.view 和两个可选参数:k ...

  7. 【Linux】(小白向)详解VirtualBox网络配置-配置Linux网络

    本文时间 2023-05-18 作者:sugerqube漆瓷 本文面向新手,重在理解会舍弃不少精密的理论,还请大佬们见谅. 本文目标:成功使用ssh工具登录linux,同时linux能连接外网. 网络 ...

  8. Python基础 - 算数运算符

    算数运算符   运算符 描述 实例 + 加 - 两个对象相加 a + b 输出结果 30 - 减 - 得到负数或是一个数减去另一个数 a - b 输出结果 -10 * 乘 - 两个数相乘或是返回一个被 ...

  9. 【python基础】变量

    1.初识变量 编程本质就是通过一定的规则,去操纵数据,变量作为数据的载体,在程序中经常会被用到.与变量相联系的还有一个名词叫数据类型,我们可以举一个生活中的例子,来理解数据类型-变量-数据三者之间的关 ...

  10. AI在金融体系下如何引导API安全?

    AI在金融体系下如何引导API安全? 随着金融科技的快速发展,越来越多的金融机构开始使用API(应用程序接口)进行数字化转型,加速业务流程和数据交换.然而,API在金融体系下面临诸多安全威胁,如恶意攻 ...