Winform应用程序实现加载等待(C#)
来源:互联网 发布:淘宝助理官方网站下载 编辑:程序博客网 时间:2024/06/06 08:46
.NET Winform应用程序中,要实现加载等待的动画效果需要借助于ImageAnimator类,该类可实现多帧图像的动画处理显示。该类的主要的方法如下:
public static void Animate(Image image, EventHandler onFrameChangedHandler) 用于播放动画,image为要处理的多帧图像,图像没经过一阵会调用onFrameChangedHandler委托,在委托中让图像显示到下一阵并重画该帧图像便可以实现动画效果。
public static void UpdateFrames(Image image) 该方法让多帧图像更新到下一帧
public static void StopAnimate(Image image, EventHandler onFrameChangedHandler) 停止动画效果
代码如下所示:
public void BeginLoading(Control container) { this.BackColor = container.BackColor; this.Refresh(); Screen screen = Screen.FromControl(container); this.Location = new Point((container.Width - this.Width) / 2, (container.Height - this.Height) / 2); container.SizeChanged -= container_SizeChanged; container.SizeChanged += container_SizeChanged; if (!container.Controls.Contains(this)) container.Controls.Add(this); this.BringToFront(); ImageAnimator.Animate(image, new EventHandler(OnImageAnimate)); this.Show(); } /// <summary> /// 结束loading /// </summary> public void EndLoading() { ImageAnimator.StopAnimate(image, eventHandler); this.Hide(); } private void UpdateImage() { ImageAnimator.UpdateFrames(image); } #endregion #region Override protected override void OnPaint(PaintEventArgs e) { UpdateImage(); Rectangle rectImage = new Rectangle(0, 0, CONST_INT_WIDTH, CONST_INT_HEIGHT); e.Graphics.DrawImage(image, rectImage); } #endregion private void container_SizeChanged(object sender, EventArgs e) { if(sender is Control) { Control container = sender as Control; this.Location = new Point((container.Width - this.Width) / 2, (container.Height - this.Height) / 2); } } private void OnImageAnimate(Object sender, EventArgs e) { //该方法中,只是使得当前这个winform重绘,然后去调用该winform的OnPaint()方法进行重绘) this.Invalidate(); }
效果图如下所示:
0 0
- Winform应用程序实现加载等待(C#)
- Winform异步等待控件简单实现
- Ajax实现页面加载等待
- android实现加载等待ProgressDialog
- Ajax实现页面加载等待
- WPF 实现加载等待状态
- 需求:实现等待加载效果
- Winform应用程序实现通用遮罩层二
- Winform应用程序实现通用遮罩层二
- Winform应用程序实现通用遮罩层二
- winform应用程序(一)
- 在WinForm应用程序中实现自动升级(一)
- C#(WinForm)实现软件注册
- C语言实现等待动画
- 用Visual C#开发WinForm的应用程序
- 用Visual C#开发WinForm的应用程序
- 用Visual C#开发WinForm的应用程序
- C#-WinForm应用程序退出设计方法
- openstack:nova中“从镜像启动”创建虚拟机的流程
- iOS获取设置的推送是否打开的方法
- Android中ListView多种Item布局的实现
- MySQL的lock tables和unlock tables的用法(转载)
- 包的知识点
- Winform应用程序实现加载等待(C#)
- hdoj 2188 悼念512汶川大地震遇难同胞——选拔志愿者【巴什博弈】
- 播放gif控件 GifMovieView.java
- 详解Android动画之Tween Animation
- 设计模式之:备忘录模式(Memento)
- 《锋利的JQuery》读书笔记(三)
- Circle of Friends
- JS中的原型及原型链的一点总结
- define,require的基本用法