WPF动画 storyboard

<Window x:Class="StoryBoard.MainWindow"

xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"

xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"

Title="MainWindow" Height="350" Width="525" Foreground="{x:Null}"
WindowStyle="None" ResizeMode="NoResize" AllowsTransparency="True"
Background="{x:Null}" Topmost="True">
<Window.Resources>

<Storyboard x:Key="fanzhuan">
<!--翻转位置
0.5,0.5表示中点翻转-->
<PointAnimationUsingKeyFrames
Storyboard.TargetProperty="(UIElement.RenderTransformOrigin)"
Storyboard.TargetName="grid">
<EasingPointKeyFrame
KeyTime="0" Value="0.5,0.5"/>

</PointAnimationUsingKeyFrames>

<DoubleAnimationUsingKeyFrames
Storyboard.TargetProperty="(UIElement.RenderTransform).(TransformGroup.Children)[0].(ScaleTransform.ScaleX)"
Storyboard.TargetName="grid">

<!--KeyTime表示时间间隔,value表示从哪里翻转-1表示反面 -0.8表示侧一点-->

<EasingDoubleKeyFrame KeyTime="0" Value="-1">

<EasingDoubleKeyFrame.EasingFunction>

<CubicEase EasingMode="EaseIn"/>

</EasingDoubleKeyFrame.EasingFunction>

</EasingDoubleKeyFrame>
<!--0:0:1是timespan
翻转完全的时间间隔-->
<EasingDoubleKeyFrame KeyTime="0:0:1"
Value="1">

<EasingDoubleKeyFrame.EasingFunction>

<CubicEase EasingMode="EaseOut"/>

</EasingDoubleKeyFrame.EasingFunction>

</EasingDoubleKeyFrame>

</DoubleAnimationUsingKeyFrames>
</Storyboard>

</Window.Resources>
<Window.Triggers>

<EventTrigger RoutedEvent="FrameworkElement.Loaded">

<BeginStoryboard Storyboard="{StaticResource fanzhuan}"/>

</EventTrigger>
</Window.Triggers>

<Grid x:Name="grid" >
<!--必须需要能翻转属性-->

<Grid.RenderTransform>
<TransformGroup>

<ScaleTransform/>
<SkewTransform/>

<RotateTransform/>

<TranslateTransform/>
</TransformGroup>

</Grid.RenderTransform>
<Grid.Background>

<ImageBrush Stretch="UniformToFill" ImageSource="Resources/6.jpg"/>

</Grid.Background>
<Button Content="Button" Name="btn1"
HorizontalAlignment="Left" Margin="338,153,0,0" VerticalAlignment="Top"
Width="75">
<Button.Triggers>

<EventTrigger RoutedEvent="Button.Click">

<BeginStoryboard Storyboard="{StaticResource fanzhuan}"/>

</EventTrigger>

</Button.Triggers>

</Button>
<Button Content="Button" Click="Button_Click"
HorizontalAlignment="Left" Margin="164,218,0,0" VerticalAlignment="Top"
Width="75"/>
</Grid>
</Window>

WPF动画 storyboard,布布扣,bubuko.com

时间: 2024-12-23 21:23:02

WPF动画 storyboard的相关文章

[WPF] 动画Completed事件里获取执行该动画的UI对象

原文:[WPF] 动画Completed事件里获取执行该动画的UI对象 昨天群里有位童鞋提出如何在动画完成事件Completed里获取到执行该动画的UI对象. WPF里动画的Completed的本身并不会返回执行动画的UI对象,但我们可以利用附加属性Storyboard.TargetProperty来达到我们想要的效果. 步骤: 1 在执行动画前,先附加属性记录对象 DoubleAnimation ani = new DoubleAnimation(); ani.From = start; an

扩展 WPF 动画类

原文:扩展 WPF 动画类 扩展 WPF 动画类                                                                     Charles Petzold                                                                     http://msdn.microsoft.com/msdnmag/issues/07/07/Foundations/Default.aspx?l

【WPF学习】第四十八章 理解WPF动画

在许多用户框架中(特别是WPF之前的框架,如Windows窗体和MFC),开发人员必须从头构建自己的动画系统.最常用的技术是结合使用计时器和一些自定义的绘图逻辑.WPF通过自带的基于属性的动画系统,改变了这种情况.接下来的两节将描述这两者之间的区别. 一.基于时间的动画 假如需要旋转Windows窗体应用程序中的About对话框中的一块文本.下面是构建该解决方案的传统方法: (1)创建周期性触发的计时器(例如,每隔50毫秒触发一次). (2)当触发计时器时,使用事件处理程序计算一些与动画相关的细

WPF——动画

本文目录 前言 1.线性插值动画 2.关键帧动画 3.路径动画 前言 使用动画,是增强用户体验的一种有效的手段.合理的动画,可以让应用程序的界面看起来更加自然.真实.流畅.舒适,更有效地向用户展现信息,用户也更容易接受.同时也增加了软件使用的乐趣,提高用户粘度.(如MSN2011的启动界面动画,字体滑动和淡入淡出.) 在以往的程序开发中,如果想构建动画,需要定时器和自定义的绘图元素,并让这些绘图元素根据定时器做出相应的改变,以实现动画效果,开发难度和工作量都是很高的.并且这些动画的拓展性和灵活性

WPF动画 - Loading加载动画

存在问题: 最近接手公司一个比较成熟的产品项目开发(WPF桌面端),其中,在登陆系统加载时,60张图片切换,实现loading闪烁加载,快有密集恐惧症了!!! 代码如下: private void LoadPics() { try { _storyboard = new Storyboard(); for (int i = 0; i < 60; i++) { ObjectAnimationUsingKeyFrames oauf = new ObjectAnimationUsingKeyFrame

WPF动画制作简单的按钮动画

主界面的代码 <StackPanel ButtonBase.Click="Grid_Click"> <Button Content="逐渐变大缩小"/> <Button Content="鼠标移动特效" /> </StackPanel> cs : //这事件不做过多的解释有基础的一看就会明白 private void Grid_Click(object sender, RoutedEventArgs

WPF 动画

动画的基础 动画是WPF的核心部分,随着对窗体程序体验的要求增加,动画表现越来越重要,WPF天生就是基于图形的,所以天生具有动画的基因,我们常说的动画,无非就三种方式实现: 逐帧动画 逐帧动画是一种常见的动画形式(Frame By Frame),其原理是在"连续的关键帧"中分解动画动作,也就是在时间轴的每帧上逐帧绘制不同的内容,使其连续播放而成动画.这就和我们的动画片的原理差不多,假如做过FLASH的人,估计对这个比较熟悉. 线性插值 线性插值,也就是给定初始点集合和终止点集合,然后给

WPF动画之路径动画(3)

XAML代码: 1 <Window x:Class="路径动画.MainWindow" 2 xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 3 xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 4 Title="MainWindow" Height="350"

# WPF动画速率效果

在WPF中使用动画的情况非常多,而要让动画变得生动往往要使用一些变速动画,WPF也内置了很方便的缓动函数来实现这一功能. 除此之外,WPF还有关键帧动画,利用关键帧动画能够很好的控制动画的细节,与美工的很多设计保持完美一致.关键帧动画中还有一套叫做样条关键帧动画(SplineKeyFrame),这个动画利用一个三次贝塞尔曲线能够更准确的控制动画的速率. 不同的缓动函数光看名字很难知道实际效果,样条关键帧动画的贝塞尔曲线控制也很难直观的看到效果,于是写了个小工具来展现不同的动画速率的效果以及修改配