using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Shapes;
using System.Windows.Media.Animation;
namespace WpfApplication2
{
/// <summary>
/// Donghua.xaml 的交互逻辑
/// </summary>
public partial class Donghua : Window
{
public Donghua()
{
InitializeComponent();
}
private void Button_Click(object sender, RoutedEventArgs e)
{
DoubleAnimation daX = new DoubleAnimation();
DoubleAnimation daY = new DoubleAnimation();
//弹跳效果
BounceEase be = new BounceEase();
be.Bounces = 4; //弹跳4次
be.Bounciness = 3; //弹跳强度,值越大,弹得越低
daY.EasingFunction = be;
//加速模式
// daX.AccelerationRatio = 0.8;
// daY.AccelerationRatio = 0.8;
//减速模式,和加速模式相加的值不能大于1
daX.DecelerationRatio = 0.8;
daY.DecelerationRatio = 0.8;
//循环次数:RepeatBehavior.Forever:永远循环
//RepeatBehavior rb = new RepeatBehavior(4);
//daX.RepeatBehavior = rb ;
//指定起点
daX.From = this.tt.X;
daY.From = this.tt.Y;
//终点位置
Random r = new Random();
double x = r.NextDouble() * 300;
double y = r.NextDouble() * 300;
Console.WriteLine(this.Width + " " + this.Height);
if (x >= this.Width) x = this.Width;
if (y >= this.Height) y = this.Height;
daX.To = x;
daY.To = y;
//指定运行时长
Duration dur = new Duration(TimeSpan.FromMilliseconds(3000));
daX.Duration = dur;
daY.Duration = dur;
this.tt.BeginAnimation(TranslateTransform.XProperty, daX);
this.tt.BeginAnimation(TranslateTransform.YProperty, daY);
}
}
}
<Window x:Class="WpfApplication2.Donghua"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Donghua" Height="341.49" Width="603.83">
<Grid>
<Button Content="我去也" Name="btnTest" HorizontalAlignment="Left" Margin="37,25,0,0" VerticalAlignment="Top" Width="51" Height="36" Click="Button_Click">
<Button.RenderTransform>
<TranslateTransform x:Name="tt" X="0" Y="0" />
</Button.RenderTransform>
</Button>
</Grid>
</Window>