WPF动画后消除属性绑架的办法

来源:互联网 时间:1970-01-01

如题,解决办法详细,请阅读《如何:在使用演示图板对属性进行动画处理后设置该属性》。

在动画对象的Completed事件处理中利用BeginAnimation将被绑架属性的动画设置为null,然后将期望保存的结果赋值给属性。

结合前一篇日志《WPF MatrixTransform 的平滑动画代码》采用的LinearMatrixAnimation类,一个MatrixTransform动画助手代码如下:

using System;

using System.Windows;using System.Windows.Media;
using System.Windows.Media.Animation;
public static class AnimationHelper
{
    public static void PlayMatrixTransformAnimation(MatrixTransform matrixTransform, Matrix newMatrix, TimeSpan timeSpan)
    {
        var animation = new LinearMatrixAnimation(matrixTransform.Matrix, newMatrix, new Duration(timeSpan));
        animation.FillBehavior = FillBehavior.HoldEnd;
        animation.Completed += (sender, e) =>
                                   {
                                       //去除属性的动画绑定
                                       matrixTransform.BeginAnimation(MatrixTransform.MatrixProperty, null);
                                       //将期望结果值保留
                                       matrixTransform.Matrix = newMatrix;
                                   };
                                   
        //启动动画
        matrixTransform.BeginAnimation(MatrixTransform.MatrixProperty, animation,HandoffBehavior.SnapshotAndReplace);
    }
}

本文来自oyi319的博客,原文地址:http://blog.csdn.net/oyi319/archive/2011/06/24/6566234.aspx


相关阅读:
Top