WPF平移动画
private void leftTrans(Button button)
{
TranslateTransform translate = new TranslateTransform();
button.RenderTransform = translate;
NameScope.SetNameScope(this, new NameScope());
this.RegisterName("translate", translate);
PathFigure pathFigure = new PathFigure();
pathFigure.IsClosed = false;
pathFigure.StartPoint = new Point(0, 0);
pathFigure.Segments.Add(new LineSegment(new Point(-50, 0), true));
PathGeometry pathGeometry = new PathGeometry();
pathGeometry.Figures.Add(pathFigure);
Path path = new Path();
path.Data = pathGeometry;
DoubleAnimationUsingPath animationX = new DoubleAnimationUsingPath();
animationX.PathGeometry = path.Data.GetFlattenedPathGeometry();
animationX.Source = PathAnimationSource.X;
animationX.Duration = new Duration(TimeSpan.FromMilliseconds(200));
Storyboard storyboard = new Storyboard();
Storyboard.SetTargetName(animationX, "translate");
Storyboard.SetTargetProperty(animationX, new PropertyPath(TranslateTransform.XProperty));
storyboard.Children.Add(animationX);
storyboard.Begin(button);
}
private void rightTrans(Button button)
{
TranslateTransform translate = new TranslateTransform();
button.RenderTransform = translate;
NameScope.SetNameScope(this, new NameScope());
this.RegisterName("translate", translate);
PathFigure pathFigure = new PathFigure();
pathFigure.IsClosed = false;
pathFigure.StartPoint = new Point(0, 0);
pathFigure.Segments.Add(new LineSegment(new Point(50, 0), true));
PathGeometry pathGeometry = new PathGeometry();
pathGeometry.Figures.Add(pathFigure);
Path path = new Path();
path.Data = pathGeometry;
DoubleAnimationUsingPath animationX = new DoubleAnimationUsingPath();
animationX.PathGeometry = path.Data.GetFlattenedPathGeometry();
animationX.Source = PathAnimationSource.X;
animationX.Duration = new Duration(TimeSpan.FromMilliseconds(200));
Storyboard storyboard = new Storyboard();
Storyboard.SetTargetName(animationX, "translate");
Storyboard.SetTargetProperty(animationX, new PropertyPath(TranslateTransform.XProperty));
storyboard.Children.Add(animationX);
storyboard.Begin(button);
}
private void topTrans(Button button)
{
TranslateTransform translate = new TranslateTransform();
button.RenderTransform = translate;
NameScope.SetNameScope(this, new NameScope());
this.RegisterName("translate", translate);
PathFigure pathFigure = new PathFigure();
pathFigure.IsClosed = false;
pathFigure.StartPoint = new Point(0, 0);
pathFigure.Segments.Add(new LineSegment(new Point(0, -50), true));
PathGeometry pathGeometry = new PathGeometry();
pathGeometry.Figures.Add(pathFigure);
Path path = new Path();
path.Data = pathGeometry;
DoubleAnimationUsingPath animationY = new DoubleAnimationUsingPath();
animationY.PathGeometry = path.Data.GetFlattenedPathGeometry();
animationY.Source = PathAnimationSource.Y;
animationY.Duration = new Duration(TimeSpan.FromMilliseconds(200));
Storyboard storyboard = new Storyboard();
Storyboard.SetTargetName(animationY, "translate");
Storyboard.SetTargetProperty(animationY, new PropertyPath(TranslateTransform.YProperty));
storyboard.Children.Add(animationY);
storyboard.Begin(button);
}
private void bottomTrans(Button button)
{
TranslateTransform translate = new TranslateTransform();
button.RenderTransform = translate;
NameScope.SetNameScope(this, new NameScope());
this.RegisterName("translate", translate);
PathFigure pathFigure = new PathFigure();
pathFigure.IsClosed = false;
pathFigure.StartPoint = new Point(0, 0);
pathFigure.Segments.Add(new LineSegment(new Point(0, 50), true));
PathGeometry pathGeometry = new PathGeometry();
pathGeometry.Figures.Add(pathFigure);
Path path = new Path();
path.Data = pathGeometry;
DoubleAnimationUsingPath animationY = new DoubleAnimationUsingPath();
animationY.PathGeometry = path.Data.GetFlattenedPathGeometry();
animationY.Source = PathAnimationSource.Y;
animationY.Duration = new Duration(TimeSpan.FromMilliseconds(200));
Storyboard storyboard = new Storyboard();
Storyboard.SetTargetName(animationY, "translate");
Storyboard.SetTargetProperty(animationY, new PropertyPath(TranslateTransform.YProperty));
storyboard.Children.Add(animationY);
storyboard.Begin(button);
}