• 大小: 8KB
    文件类型: .zip
    金币: 1
    下载: 0 次
    发布日期: 2021-06-06
  • 语言: C#
  • 标签: WPF  C#  动画  

资源简介

平时工作积累的资源。代码经过封装,使用方便,包含多种动画。

类名:AirBubblesAnimation
效果:气泡动画
说明:类似于气泡的弹出动画(根据运用场景设置元素向下对齐,能看出气泡自下向上弹出),弹出之后有来回的缓动效果。

类名:ShuttersAnimation
效果:百叶窗动画
说明:类似于百叶窗的展现动画(一般用于图片、视频效果)。可通过设置矩形宽度和百叶窗方向,来实现不同的展示效果。

类名:OpacityFadingAnimation
效果:淡入淡出动画
说明:通过控制元素的透明度,实现元素的淡入淡出动画效果。

类名:InsideOutFadingAnimation
效果:扩散动画
说明:通过控制元素透明掩码,实现元素由中心向外渐显的动画,以及由外向中心渐隐的动画。

类名:LinearFadingAnimation
效果:线性动画
说明:通过控制元素透明掩码,实现元素自下向上的渐显动画,以及自上向下的渐隐动画。

资源截图

代码片段和文件信息

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace System.Windows.Media.Animation {
    /// 
    /// 气泡动画
    /// 

    public class AirBubblesAnimation {

        #region 私有字段
        //动画元素
        private frameworkElement element;
        //显示故事版
        private Storyboard showStoryboard;
        //隐藏故事版
        private Storyboard hideStoryboard;
        #endregion

        #region 公共属性
        /// 
        /// 显示动画结束事件
        /// 

        public event EventHandler ShowAnimationCompleted;
        /// 
        /// 隐藏动画结束事件
        /// 

        public event EventHandler HideAnimationCompleted;
        /// 
        /// 显示元素大小
        /// 

        public Size ElementSize { get; set; }
        #endregion

        #region 公共方法
        /// 
        /// 气泡动画实例
        /// 

        /// 动画元素
        public AirBubblesAnimation(frameworkElement element) {
            this.element = element;
            //显示动画
            var showWidthAnimation = new DoubleAnimation(0 this.ElementSize.Width new Duration(TimeSpan.FromSeconds(1.5))) {
                EasingFunction = new ElasticEase() { EasingMode = EasingMode.EaseOut Oscillations = 8 Springiness = 18 }
            };
            var showHeightAnimation = new DoubleAnimation(0 this.ElementSize.Height new Duration(TimeSpan.FromSeconds(1.5))) {
                EasingFunction = new ElasticEase() { EasingMode = EasingMode.EaseOut Oscillations = 8 Springiness = 18 }
            };
            this.showStoryboard = new Storyboard() { Children = new TimelineCollection() { showWidthAnimation showHeightAnimation } };
            this.showStoryboard.Completed += showStoryboard_Completed;
            Storyboard.SetTarget(showWidthAnimation this.element);
            Storyboard.SetTarget(showHeightAnimation this.element);
            Storyboard.SetTargetProperty(showWidthAnimation new PropertyPath(frameworkElement.WidthProperty));
            Storyboard.SetTargetProperty(showHeightAnimation new PropertyPath(frameworkElement.HeightProperty));
            //隐藏动画
            var hideWidthAnimation = new DoubleAnimation(this.ElementSize.Width 0 new Duration(TimeSpan.FromSeconds(0.5))) {
                EasingFunction = new ElasticEase() { EasingMode = EasingMode.EaseIn Oscillations = 2 Springiness = 15 }
            };
            var hideHeightAnimation = new DoubleAnimation(this.ElementSize.Height 0 new Duration(TimeSpan.FromSeconds(0.5))) {
                EasingFunction = new ElasticEase() { EasingMode = EasingMode.EaseIn Oscillations = 2 Springiness = 15 }
            };
            this.hideStoryboard = new Storyboard() { Children = new TimelineCollection() { hideWidthAnimation hideHeightAnimation } };
            this.hideStoryboard.Completed += hideStoryboard_Compl

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----
     目录           0  2018-07-19 13:59  WPF动画类\
     目录           0  2018-07-19 13:58  WPF动画类\Animation\
     文件        5614  2018-07-19 13:53  WPF动画类\Animation\AirBubblesAnimation.cs
     文件        4639  2018-07-19 13:53  WPF动画类\Animation\InsideOutFadingAnimation.cs
     文件        6933  2018-07-19 13:53  WPF动画类\Animation\LinearFadingAnimation.cs
     文件        3261  2018-07-19 13:53  WPF动画类\Animation\OpacityFadingAnimation.cs
     文件        5538  2018-07-19 13:53  WPF动画类\Animation\ShuttersAnimation.cs
     文件         963  2018-07-19 10:55  WPF动画类\Animation\动画使用类说明.txt

评论

共有 条评论