protected override Storyboard BuildStoryBoard() { var transform = BuildTransform(); if (AssociatedObject.GetOpacityProperty() != GetOpacity() || transform.ScaleX != AssociatedObject.GetScaleXProperty() || transform.ScaleY != AssociatedObject.GetScaleYProperty()) { var storyboard = new Storyboard { FillBehavior = FillBehavior.HoldEnd }; var duration = new Duration(TimeSpan.FromMilliseconds(Duration)); storyboard.AddScalingAnimation( AssociatedObject, AssociatedObject.GetScaleXProperty(), transform.ScaleX, AssociatedObject.GetScaleYProperty(), transform.ScaleY, duration); storyboard.AddOpacityAnimation(AssociatedObject, AssociatedObject.GetOpacityProperty(), GetOpacity(), duration); return(storyboard); } return(null); }