WPF动画简单练习
来源:互联网 发布:淘宝开店充话费流程 编辑:程序博客网 时间:2024/05/23 05:08
在一个窗体中加入几个按钮,简单布局如下
<Grid> <StackPanel> <Button Width="100" Height="100" Content="我是按钮1"></Button> <Button Width="100" Height="100" Content="我是按钮2"></Button> <Button Width="100" Height="100" Content="我是按钮3"></Button> </StackPanel> </Grid>
为了显示动画,我们要在资源中添加动画
<Window.Resources> <Style TargetType="{x:Type Button}"> <Setter Property="HorizontalAlignment" Value="Center"></Setter> <Setter Property="RenderTransformOrigin" Value="0.5 0.5"></Setter> <Setter Property="Padding" Value="20,15"></Setter> <Setter Property="Margin" Value="2"></Setter> <Setter Property="RenderTransform"> <Setter.Value> <RotateTransform ></RotateTransform> </Setter.Value> </Setter> <Style.Triggers> <EventTrigger RoutedEvent="Button.MouseEnter"> <EventTrigger.Actions> <BeginStoryboard> <Storyboard> <DoubleAnimation Storyboard.TargetProperty="RenderTransform.Angle" To="360" Duration="0:0:0.8" RepeatBehavior="Forever"> </DoubleAnimation> </Storyboard> </BeginStoryboard> </EventTrigger.Actions> </EventTrigger> <EventTrigger RoutedEvent="Button.MouseLeave"> <EventTrigger.Actions> <BeginStoryboard> <Storyboard> <DoubleAnimation Storyboard.TargetProperty="RenderTransform.Angle" Duration="0:0:0.2"></DoubleAnimation> </Storyboard> </BeginStoryboard> </EventTrigger.Actions> </EventTrigger> </Style.Triggers> </Style> </Window.Resources>
这个资源定义了两个时间触发器,时间触发器改变的是变换的角度
效果是,当我们把鼠标移动到按钮上时,按钮开始选装,当鼠标移开时,按钮恢复原的位置。
这里有一点需要注意,当我们把
Setter Property="RenderTransform"设置成
Setter Property="LayoutTransform
布局如下
<Window.Resources> <Style TargetType="{x:Type Button}"> <Setter Property="HorizontalAlignment" Value="Center"></Setter> <Setter Property="RenderTransformOrigin" Value="0.5 0.5"></Setter> <Setter Property="Padding" Value="20,15"></Setter> <Setter Property="Margin" Value="2"></Setter> <Setter Property="LayoutTransform"> <Setter.Value> <RotateTransform ></RotateTransform> </Setter.Value> </Setter> <Style.Triggers> <EventTrigger RoutedEvent="Button.MouseEnter"> <EventTrigger.Actions> <BeginStoryboard> <Storyboard> <DoubleAnimation Storyboard.TargetProperty="LayoutTransform.Angle" To="360" Duration="0:0:0.8" RepeatBehavior="Forever"> </DoubleAnimation> </Storyboard> </BeginStoryboard> </EventTrigger.Actions> </EventTrigger> <EventTrigger RoutedEvent="Button.MouseLeave"> <EventTrigger.Actions> <BeginStoryboard> <Storyboard> <DoubleAnimation Storyboard.TargetProperty="LayoutTransform.Angle" Duration="0:0:0.2"></DoubleAnimation> </Storyboard> </BeginStoryboard> </EventTrigger.Actions> </EventTrigger> </Style.Triggers> </Style> </Window.Resources>
就会得到另一种效果
这两种变换的区别是:第一种当旋转时布局不会动态改变,就是当我们点击第一个按钮时,他下面的按钮位置不会改变。第二种就不一样,如果我们点击第一个按钮时,他下面的按钮位置会发生变化
0 0
- WPF动画简单练习
- WPF简单动画
- WPF 简单动画
- WPF 简单的动画
- WPF入门(五)-WPF简单动画实现
- Wpf(Storyboard)动画简单实例
- 简单css3动画效果练习
- 一个简单的WPF图片动画制作
- Wpf一个简单的物体移动动画
- WPF的简单关闭动画特效
- WPF动画
- WPF动画
- [WPF]动画
- WPF动画
- [WPF] 简单画刷动画及Content的概念
- WPF Animation - 如何创建一个简单的动画
- WPF异步方法练习
- WPF入门练习01
- Eclipse 中设置JVM 内存
- http 协议学习
- java eclipse环境配置
- Buffer类的详解(转)
- JavaBean 和 Map 之间互相转换
- WPF动画简单练习
- 二叉树算法
- 计算两个时间的日期差
- 第17周项目-16指针法去除空格
- 软件混音的实现
- Java实现斐波那契数列
- 将字符串转化成数字
- 查漏补缺,巩固基础——C++Primer之旅day4
- 【风宇冲】Unity3D教程宝典之Shader篇:第四讲制作一个美丽的地球