WPF框架基础动画

本文介绍了WPF框架的基础动画,包括KeyTime属性在离散关键帧动画中的作用,以及缓动关键帧如EasingDoubleKeyFrame的工作原理。此外,还讲解了基于帧的动画实现方法,以及WPF中的数据模板和控件模板的定义和应用,如ControlTemplate用于改变控件外观和行为,DataTemplate则用于数据呈现的自定义。
	控制播放故事板
   PauseStoryboard:暂停动画, ResumeStoryboard:继续播放动画,StopStoryboard:停止动画,并恢复开始位置;RemoveStoryboard:移出动画;

    故事板事件:Completed:动画已经到达终点该执行的事件;CurrentStateInvalidated 动画已经开始或结束触发的事件。RemoveRequested 动画正在被移除该执行的事件。CurrentGlobalSpeedInvalidated:速度发生了变化,或者动画被暂停、重新开 始、停止或移到某个新的位置。CurrentTimeInvalidated:动画时钟已经向前移动了一个步长,正在更改动画。当动画开始、停止或结束时也会引发该事件。 

    动画缓动
    缓动函数EasyingFunction属性只能接受单个缓动函数对象,所以不能 为同一个动画结合不同的缓动函数。有三种值:EaseIn在动画开始时缓动效果、EaseOut动画结束时缓动效 果)、EaseInOut在开始和结束时缓动动画。

    动画变换:变换方式,RenderTransform属性和LayoutTransform属性。RenderTransform属性效率更高。因为是在布局之后应用变换,并且用于变换最终的渲染输出。 LayoutTransform是在布局前应用,所以其他控件需要重新排列以适应变换。在使用RotateTransform时,一定要使用TransformGroup, 否则不能进行动画。

    关键帧动画 :平滑地从一个值移动到另一个值。关 键帧对象基本上都有Value属性和KeyTime属性。和其他普通动画不同的是 Value属性的数据类型,在LinearPointKeyFrame类中是Point类型,在 DoubleKeyFrame类中是double类型;Value 属性是目标值

KeyTime 属性是何时到达目标值
离散的关键帧动画:离散关键帧不是进行插值,当到达关键时间时,属性突然改变为新值,离散关键帧类使用"Discrete数据类型 +KeyFrame"的形式命名。当运行这个动画时中心点会在适当的时间从一个位置跳转到下一个位置

缓动关键帧:常用的缓动关键帧类有:EasingDoubleKeyFrame、 EasingColorKeyFrame、EasyingPointKeyFrame。每个缓动关键帧类和对应的线性插值关键帧类的工作方式相同,但是额外提供了EasyingFunction属性。

基于帧的动画:使用帧的动画要为静态的CompositionTarger.Rendering事件关联事件处理程序,一旦关联这个处理程序,WPF就开始不断地调用这个事件处理程序,WPF将每秒调用60次。当动画结束后,分离事件处理程序

    Blend for Visual Studio 概述:Blend for Visual Studio 可用于设计基于 XAML 的 Windows 和 Web 应用程序。 它提供 了与 Visual studio 相同的基本 XAML 设计体验,并添加了可视化设计器,以用于高级任 务,例如动画和行为;WPF中常用控件都有一个默认的自定义样式,在Visual Studio中不能直接查看,但是在 Blend for Visual Studio 中可以通过模板来查看;在XAML写个button按钮,然后在视图中选择时间和对象,然后选择按钮进行右键>编辑模板>编辑副文本>点击确认;

WPF包含数据模板和控件模
模板:定义模板的方法有三种:内联定义,定义为资源,通过Style定义;其实WPF的每一个控件都有一个默认的模板,该模板描述了控件的外观(视觉树)以及外观对外界刺激所做出的反应(触发器)。我们可以自定义一个模板来替换掉控件的默认模板以便打造个性化的控件

ControlTemplate控件模板:控件模板又包括ControlTemplate和 ItemsPanelTemplate,控件模板指定控件的可视结构和可视行为。可以在不更改现有控件的功能的情况下更改其外观;控件模板两个属性:VisualTree属性,该模板的视觉树,其实我们就是使用这个属性来描述控件的外观的,Triggers属性,触发器列表,里面包含一些触发器Trigger,我们可以定制这个触发器列表来使控件对外界的刺激发生反应,比如鼠标经过时文本变成粗体等。

DataTemplate数据模板:数据模板适用于Content Control类控件与Items Control类控件,例如:在ListBox中的每个Item中显示某个成员的姓名、年龄以及喜欢的颜色,点击Item的时候,会在右边 显示详细信息,同时也想让ListBox的样式变得好看一些,比如带有绿色边框等。用控件模板修改ListBox的默认样式,用数据模板改变ListBoxItem的数据呈现形式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值