WPF之 使用Storyboard故事板做动画效果

**


通过Storyboard实现位移和透明度变化动画效果


第一种方式通过Window.Resources在XAML中写的

**

  <Grid>
        <Border x:Name="bor" Background="LightBlue" Margin="0,100,0,-100" Opacity="1"></Border>
        <Button x:Name="btn" Width="100" Height="40" ></Button>
    </Grid>
 <Window.Resources>
        <Storyboard x:Key="sb">
            <ThicknessAnimation Duration="0:0:1" From="0,100,0,-100" To="0,0,0,0" Storyboard.TargetProperty="Margin" Storyboard.TargetName="bor" />
            <DoubleAnimation Duration="0:0:1" From="0" To="1" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="bor"/>
        </Storyboard>
    </Window.Resources>

怎么触发呢!!!

 <Window.Triggers>
        <EventTrigger RoutedEvent="Button.Click" SourceName="btn">
            <BeginStoryboard Storyboard="{StaticResource sb}">
                
            </BeginStoryboard>
        </EventTrigger>
    </Window.Triggers>

第二种方式 通过Button的Click事件触发

 ThicknessAnimation thicknessAnimation = new ThicknessAnimation();
            thicknessAnimation.Duration = new TimeSpan(0, 0, 0, 1);
            thicknessAnimation.From = new Thickness(0, 100, 0, -100);
            thicknessAnimation.To = new Thickness(0, 0, 0, 0);
            //this.bor.BeginAnimation(MarginProperty, thicknessAnimation);

            DoubleAnimation doubleAnimation = new DoubleAnimation();
            doubleAnimation.Duration = new TimeSpan(0, 0, 0, 1);
            doubleAnimation.From = 0;
            doubleAnimation.To = 1;
            //this.bor.BeginAnimation(OpacityProperty, doubleAnimation);

            Storyboard storyboard = new Storyboard();
            storyboard.Children.Add(thicknessAnimation);
            storyboard.Children.Add(doubleAnimation);

            Storyboard.SetTarget(thicknessAnimation, this.bor);
            Storyboard.SetTargetProperty(thicknessAnimation, new PropertyPath("Margin"));
            Storyboard.SetTarget(doubleAnimation, this.bor);
            Storyboard.SetTargetProperty(doubleAnimation, new PropertyPath("Opacity"));
            storyboard.Begin();

效果图
请添加图片描述

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
WPF是Windows Presentation Foundation的缩写,是一种应用程序框架,可用于在Windows操作系统上开发GUI应用程序。WPF支持三维图形,并可用于制作各种动画效果使用WPF制作三维图形动画的方式有许多种,其中一种常见的方式是使用内置的3D图形引擎。该引擎可以使用XAML和C#编程语言创建3D图形,并通过应用程序中特定的命令和事件来控制动画的变化。 在WPF中,使用Camera对象定义场景的观察位置和方向,同时使用Light对象定义灯光的位置和颜色。该方案在创建3D化身对象时会非常有用。 3D图形对象可以由多种形状和几何图形组成,并可以在3D空间中移动、旋转和缩放。例如,可以通过两个三角形扩展到组合实体,这将产生一种复杂的3D对象。 为了创建动画,可以使用WPFStoryboard功能。Storyboard是一种可将事件、动作和顺序化序列捆绑在一起的集成方式,从而产生复杂而统一的转换效果。在Storyboard中可以定义动画开始和结束的位置、持续时间和缓动函数,以及动画完成后要触发的其他事件。 总结来说,WPF支持三维图形,可用于创建各种动画效果使用内置的3D图形引擎,可以通过Camera和Light对象定义场景。3D图形对象可以由多种形状或几何图形组成,可以在3D空间中移动、旋转和缩放。为了创建动画,可以使用WPFStoryboard功能。Storyboard是一种将事件、动作和顺序化序列捆绑在一起的集成方式,以产生复杂而统一的转换效果
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值