按键动画

XAML:
<Window x:Class="WpfApplication7.Window1"
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
    Title="Window1" Height="370" Width="450">
    <Grid>
        <Grid.RowDefinitions>
            <RowDefinition></RowDefinition>
            <RowDefinition></RowDefinition>
            <RowDefinition></RowDefinition>
        </Grid.RowDefinitions>
        <Button Padding="10" Name="cmdGrow" Click="cmdGrow_Click" Height="40" Width="160"
                HorizontalAlignment="Center" VerticalAlignment="Center">
            Click make me grow
        </Button>
        <Button Grid.Row="1" Padding="10" Name="cmdShrink" Click="cmdShrink_Click"
                HorizontalAlignment="Center" VerticalAlignment="Center">Shrink It Back</Button>
        <Button Grid.Row="2" Padding="10" Name="cmdGrowIncrementally"
            HorizontalAlignment="Center" VerticalAlignment="Center" Click="cmdGrowIncrementally_Click"
                 Width="240">Click me make me grow</Button>
    </Grid>
</Window>
后台代码:
private void cmdGrow_Click(object sender, RoutedEventArgs e)
{
    DoubleAnimation widthAnimation = new DoubleAnimation();
    widthAnimation.To = this.Width - 30;
    widthAnimation.Duration = TimeSpan.FromSeconds(5);
    widthAnimation.Completed += animation_Completed;

    DoubleAnimation heightAnimation = new DoubleAnimation();
    heightAnimation.To = (this.Height - 50)/3;
    heightAnimation.Duration = TimeSpan.FromSeconds(5);

    cmdGrow.BeginAnimation(Button.WidthProperty, widthAnimation);
    cmdGrow.BeginAnimation(Button.HeightProperty, heightAnimation);   
}
private void animation_Completed(object sender, EventArgs e)
{
    //double currentWidth = cmdGrow.Width;
    //cmdGrow.BeginAnimation(Button.WidthProperty, null);
    //cmdGrow.Width = currentWidth;

    //MessageBox.Show("Completed!");
}

private void cmdShrink_Click(object sender, RoutedEventArgs e)
{
    DoubleAnimation widthAnimation = new DoubleAnimation();
    widthAnimation.Duration = TimeSpan.FromSeconds(5);           
    DoubleAnimation heightAnimation = new DoubleAnimation();
    heightAnimation.Duration = TimeSpan.FromSeconds(5);
    cmdGrow.BeginAnimation(Button.WidthProperty, widthAnimation);
    cmdGrow.BeginAnimation(Button.HeightProperty, heightAnimation);
}

private void cmdGrowIncrementally_Click(object sender, RoutedEventArgs e)
{
    DoubleAnimation widthAnimation = new DoubleAnimation();
    widthAnimation.By = 10;
    widthAnimation.Duration = TimeSpan.FromSeconds(0.5);                      

    cmdGrowIncrementally.BeginAnimation(Button.WidthProperty, widthAnimation);           
}

转载于:https://www.cnblogs.com/qiujiahong/p/3173342.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值