首页 > 代码库 > c#控件的动画显示效果
c#控件的动画显示效果
1. 缘由:
项目中任务完成有个提示,需要以动画效果展示,其效果当如下图:
此为老项目为Delphi所写,改用c#实现,此效果做些设计。本也不难,小技而已,但为易于扩展,写了个静态类实现。
2. Animation动画类
直上代码如下:
public static class Animation { private static readonly int MoveStep = 25; private static Timer tmrAnim = null; private static Control control = null; private static AnchorStyles direction = AnchorStyles.None; private static Size destSize; private static void InitTimer() { if (tmrAnim == null) { tmrAnim = new Timer(); tmrAnim.Interval = 25; tmrAnim.Tick += new System.EventHandler(tmrAnim_Tick); } } private static void tmrAnim_Tick(object sender, System.EventArgs e) { int newValue = http://www.mamicode.com/0; int offSet = 0; switch (direction) { case AnchorStyles.Left: case AnchorStyles.Right: newValue = control.Width + MoveStep; if (newValue > destSize.Width) { tmrAnim.Stop(); newValue = destSize.Width; } offSet = newValue - control.Width; control.Width += offSet; if (direction == AnchorStyles.Left) control.Left -= offSet; break; case AnchorStyles.Top: case AnchorStyles.Bottom: newValue = control.Height + MoveStep; if (newValue > destSize.Height) { tmrAnim.Stop(); newValue = destSize.Height; } offSet = newValue - control.Height; control.Height += offSet; if (direction == AnchorStyles.Top) control.Top -= offSet; break; } } public static void ShowControl(Control control, bool visible, AnchorStyles direction = AnchorStyles.None) { if (direction == AnchorStyles.None) { control.Visible = visible; return; } if (!visible) { if (tmrAnim != null) tmrAnim.Stop(); control.Hide(); } else { InitTimer(); if (Animation.control != control && destSize.IsEmpty) { destSize = new Size(control.Width, control.Height); } Animation.control = control; Animation.direction = direction; switch (direction) { case AnchorStyles.Left: case AnchorStyles.Right: if (direction == AnchorStyles.Left) control.Left += control.Width; control.Width = 0; break; case AnchorStyles.Top: case AnchorStyles.Bottom: if (direction == AnchorStyles.Top) control.Top += control.Height; control.Height = 0; break; } control.Show(); tmrAnim.Start(); } } }
非常短小,其实现控件由四面出现效果,如下图:
3. 最终实现效果图:
c#控件的动画显示效果
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。