收藏 分销(赏)

第9章-样式与动画.ppt

上传人:快乐****生活 文档编号:5473110 上传时间:2024-11-10 格式:PPT 页数:76 大小:2.19MB 下载积分:16 金币
下载 相关 举报
第9章-样式与动画.ppt_第1页
第1页 / 共76页
第9章-样式与动画.ppt_第2页
第2页 / 共76页


点击查看更多>>
资源描述
第9章 样式与动画2Ch9 Ch9 样式与动画样式与动画9.1资源与样式控制资源与样式控制9.2控件模板与触发器控件模板与触发器9.3WPF动画设计基础动画设计基础9.4*动画变换和特效处理动画变换和特效处理9.1 9.1 资源与样式控制资源与样式控制9.1.1WPF项目中的文件属性项目中的文件属性9.1.2XAML资源资源9.1.3Style元素元素9.1.4样式的级联控制和资源字典样式的级联控制和资源字典49.1 9.1 资源与样式控制资源与样式控制在在WPF应用程序中,资源是指项目中可以和应用程序中,资源是指项目中可以和C#代码分离的固定不变的信息。代码分离的固定不变的信息。资源文件是指不能直接执行的文件资源文件是指不能直接执行的文件。例如,图像、字符串、图标、声音、视频、例如,图像、字符串、图标、声音、视频、XAML文件等。文件等。资源文件资源文件的的保存保存形式形式,则由其所在文件的【生成操,则由其所在文件的【生成操作】属性来决定。作】属性来决定。WPF应用程序是利用资源对样式和主题进行控制应用程序是利用资源对样式和主题进行控制的。的。59.1.1 WPF项目中的文件属性项目中的文件属性文件文件属性表示了编译整个项目以及将文件添加属性表示了编译整个项目以及将文件添加到项目中时处理该文件的方式到项目中时处理该文件的方式。一般在【解决方案资源管理器】中选中某个文一般在【解决方案资源管理器】中选中某个文件,然后通过【属性】窗口查看或更改该文件件,然后通过【属性】窗口查看或更改该文件的属性。的属性。在更改文件的生成类型后,必须选择【重新生在更改文件的生成类型后,必须选择【重新生成】项目,才会应用这些更改。如果只选择【成】项目,才会应用这些更改。如果只选择【生成】项目,则不会应用更改。生成】项目,则不会应用更改。69.1.1 WPF项目中的文件属性项目中的文件属性WPF应用程序项目中文件应用程序项目中文件的的属性属性1复制到输出目录复制到输出目录u不复制:指编译项目时,不将该文件复制到输出目录。不复制:指编译项目时,不将该文件复制到输出目录。u始终复制:指每次编译项目时,都将该文件复制到输出始终复制:指每次编译项目时,都将该文件复制到输出目录下。目录下。u如果较新则复制:指每次编译项目时,如果项目下的文如果较新则复制:指每次编译项目时,如果项目下的文件比输出目录下的文件新,则将项目下的文件复制到输件比输出目录下的文件新,则将项目下的文件复制到输出目录。出目录。79.1.1 WPF项目中的文件属性项目中的文件属性2生成生成操作操作生成操作含 义无不进行任何操作编译将该文件编译到扩展名为.exe的可执行文件中,如果是库项目,则编译到扩展名为.dll的文件中内容表示将文件添加到项目中时,生成操作将该文件转换为内容(Content),可以利用自定义工具对文件进行转换处理。编译项目时,该文件不编译到程序集中,而是随项目单独保存嵌入的资源指包含在Properties文件夹下的Resources.resx文件中的资源。编译项目时,Resources.resx文件会自动被包含到生成的.exe或者.dll文件中Resource表示文件以单独的形式保存在项目中,与其对应的.resx文件只保存这些文件的链接。编译项目时,再将这些文件嵌入到程序集中,即编译到.exe或者.dll文件中ApplicationDefinition表示该文件是应用程序的定义文件Page表示这些文件为XAML资源文件。编译【生成操作】属性为Page的文件时,这些文件将被转换为二进制格式编译到程序集中,即编译到.exe或者.dll文件中SplashScreen表示该文件是初始屏幕使用的图像文件89.1.1 WPF项目中的文件属性项目中的文件属性3嵌入的资源嵌入的资源嵌入的资源是指包含在嵌入的资源是指包含在Properties文件夹下的文件夹下的Resources.resx文件中的资源。文件中的资源。一旦将某个文件作为嵌入的资源,系统即自动一旦将某个文件作为嵌入的资源,系统即自动将其转换为强类型的对象,然后以二进制形式将其转换为强类型的对象,然后以二进制形式嵌入到嵌入到Properties文件夹下的文件夹下的Resource.resx文文件中。件中。嵌入后无法再修改原始文件的内容。嵌入后无法再修改原始文件的内容。99.1.1 WPF项目中的文件属性项目中的文件属性3嵌入的资源嵌入的资源在多个项目之间共享的资源文件在多个项目之间共享的资源文件,例如,包含公司例如,包含公司徽标、商标信息等文件,可使用嵌入的资源徽标、商标信息等文件,可使用嵌入的资源。优点优点:将这些文件作为嵌入的资源后,只需要将将这些文件作为嵌入的资源后,只需要将Resource.resx文件复制到其他项目中即可,而不文件复制到其他项目中即可,而不需要复制关联的资源数据文件;需要复制关联的资源数据文件;缺点缺点:无法修改资源文件的内容。无法修改资源文件的内容。将字符串(不是指文本文件)按资源来处理时,必将字符串(不是指文本文件)按资源来处理时,必须将其作为嵌入的资源须将其作为嵌入的资源。109.1.1 WPF项目中的文件属性项目中的文件属性4链接的资源链接的资源链接的资源是指将文件添加到项目中时,在对应的链接的资源是指将文件添加到项目中时,在对应的扩展名为扩展名为.resx的文件中只保存这些文件的相对路径的文件中只保存这些文件的相对路径或链接,而被链接的这些文件仍然单独存储,而且或链接,而被链接的这些文件仍然单独存储,而且可编辑。可编辑。注意这里所说的注意这里所说的“扩展名为扩展名为.resx的文件的文件”不是指不是指Properties文件夹下的文件夹下的Resource.resx文件,而是文件,而是指单独添加到项目中的扩展名为指单独添加到项目中的扩展名为.resx的文件。的文件。图像文件、图标文件、音频文件、视频文件、文本图像文件、图标文件、音频文件、视频文件、文本文件以及其他类型的文件都可以作为链接的资源。文件以及其他类型的文件都可以作为链接的资源。119.1.1 WPF项目中的文件属性项目中的文件属性5内容内容文件文件内容文件是指没有被编译到程序集内的文件,这内容文件是指没有被编译到程序集内的文件,这些文件以单独的文件形式与项目一起发布些文件以单独的文件形式与项目一起发布。6SplashScreenSplashScreen(初始屏幕)是指将某个图像文件(初始屏幕)是指将某个图像文件作为程序启动时,在显示主窗口之前显示的屏幕作为程序启动时,在显示主窗口之前显示的屏幕界面界面。通常通常由由一幅图像和一种背景色一幅图像和一种背景色组成组成。使用初始屏幕的目的是为了让用户能看出程序正使用初始屏幕的目的是为了让用户能看出程序正在加载。在加载。129.1.2 XAML资源资源XAML资源是指用资源是指用XAML描述的在应用程序中的描述的在应用程序中的不同位置可以重用的对象不同位置可以重用的对象。例如,样式(例如,样式(Style)、画笔()、画笔(Brush)等都是)等都是XAML资源。资源。注意注意XAML资源和扩展名为资源和扩展名为.resx的资源文件不是的资源文件不是一个概念。一个概念。XAML资源的扩展名是资源的扩展名是.xaml而不是而不是.resx,这些,这些文件的【生成操作】属性都是文件的【生成操作】属性都是Page,而且这些文,而且这些文件都会被编译到程序集中。件都会被编译到程序集中。139.1.2 XAML资源资源1声明和引用声明和引用XAML资源资源一般在一般在元素的元素的Resources内内声明声明XAML资源。资源。9.1.2 XAML资源资源1声明和引用声明和引用XAML资源资源声明了声明了XAML资源以后,就可以资源以后,就可以用用Style引用声引用声明的资源。明的资源。14 你好!声明引用9.1.2 XAML资源资源2静态资源和动态资源静态资源和动态资源静态静态资源(资源(StaticResource)是)是指指编译时就已经对编译时就已经对其进行索引的资源,一旦定义了这些资源,就无法其进行索引的资源,一旦定义了这些资源,就无法通过通过C#代码修改资源的内容。代码修改资源的内容。u用用StaticResourcekeyName标记扩展标记扩展引用引用静态静态资源。资源。执行速度快,但无法动态改变执行速度快,但无法动态改变动态资源(动态资源(DynamicResource)是)是指指临时定义的临时定义的资源,这些资源的内容可以通过资源,这些资源的内容可以通过C#代码随时修改。代码随时修改。u用用DynamicResourcekeyName标记扩展标记扩展引用引用动态动态资资源。源。可以动态改变,但执行速度慢可以动态改变,但执行速度慢159.1.3 Style元素元素WPF应用程序中的用程序中的样式是利用式是利用XAML资源来源来实现的。的。即在即在XAML资源中用资源中用Style元素声明样式和模板,并元素声明样式和模板,并在控件中引用它在控件中引用它。Style元素的常用形式元素的常用形式为169.1.3 Style元素元素(1)隐式样式设置(只声明)隐式样式设置(只声明TargetType)在在Style元素的开始标记内,可以只声明元素的开始标记内,可以只声明TargetType而不声明而不声明x:Key,此时,此时x:Key的值将隐的值将隐式设置为和式设置为和TargetType的值相同,该样式对其控制的值相同,该样式对其控制范围内的所有范围内的所有TargetType中声明的控件类型都起作中声明的控件类型都起作用。例如:用。例如:179.1.3 Style元素元素(2)显式样式设置(只声明)显式样式设置(只声明x:Key)声明了声明了x:Key的样式称为显式样式设置,即控件只的样式称为显式样式设置,即控件只有在显式样式设置下用有在显式样式设置下用Style特性引用该特性引用该x:Key的值的值时才会起作用时才会起作用。189.1.3 Style元素元素(3)同时声明)同时声明x:Key和和TargetType如果同时声明如果同时声明x:Key和和TargetType,则只有引用了,则只有引用了x:Key的值且控件类型为的值且控件类型为TargetType中指定的类型中指定的类型的控件才会起作用,而且引用了显式样式的控件将的控件才会起作用,而且引用了显式样式的控件将不再应用隐式样式不再应用隐式样式。199.1.3 Style元素元素(4)样式继承(声明中包含)样式继承(声明中包含BasedOn)如果样式声明中包含如果样式声明中包含BasedOn,则该样式将继承,则该样式将继承BasedOn中定义的样式。其效果就是将该样式和中定义的样式。其效果就是将该样式和BasedOn中的样式合并起来共同起作用中的样式合并起来共同起作用。209.1.3 Style元素元素在在和和之间,既可以用特性语法声之间,既可以用特性语法声明一个或多个明一个或多个Setter对象,也可以用属性语法设对象,也可以用属性语法设置属性的值置属性的值。(1)用特性语法定义)用特性语法定义用特性语法定义用特性语法定义Setter时,每个时,每个Setter都必须包括都必须包括Property属性和属性和Value属性。例如:属性。例如:u如果存在多个如果存在多个Setter具有相同的具有相同的Property,则最后,则最后的的Setter中的中的Property有效。有效。219.1.3 Style元素元素(2)用属性语法定义)用属性语法定义当某些属性无法用特性语法来描述时,也可以用属当某些属性无法用特性语法来描述时,也可以用属性语法来实现,此时在性语法来实现,此时在Setter元素中定义元素中定义Property属性,在属性,在Setter元素的子元素中定义元素的子元素中定义Value属性属性。例如:例如:229.1.3 Style元素元素在在XAML资源的资源的和和之间,可以用之间,可以用EventSetter设置事件设置事件。例如:例如:239.1.4 样式的级联控制和资源字典样式的级联控制和资源字典1样式的级联控制样式的级联控制根据根据XAML资源声明的位置,可将样式定义分为不同资源声明的位置,可将样式定义分为不同的级别的级别。(1)内联式)内联式内联式是指在元素的开始标记内直接用特性语法声内联式是指在元素的开始标记内直接用特性语法声明元素的样式明元素的样式。u文本文本内联式适用于单独控制元素样式的情况内联式适用于单独控制元素样式的情况。u优点优点:设置设置样式直观、样式直观、方便方便;u缺点缺点:无法无法一次性设置所有窗口或页面中相同的样式一次性设置所有窗口或页面中相同的样式。249.1.4 样式的级联控制和资源字典样式的级联控制和资源字典1样式的级联控制样式的级联控制(2)框架元素样式)框架元素样式框架元素是指从框架元素是指从FrameworkElement或或FrameworkContentElement继承的元素,根元素继承的元素,根元素(Window、Page、UserControl等)只是一种特等)只是一种特殊的框架元素。殊的框架元素。框架元素样式是指在框架元素(包括根元素)的框架元素样式是指在框架元素(包括根元素)的Resource属性中定义的样式,这种样式的作用范围属性中定义的样式,这种样式的作用范围为该元素的所有子元素。为该元素的所有子元素。259.1.4 样式的级联控制和资源字典样式的级联控制和资源字典1样式的级联控制样式的级联控制(3)应用程序样式)应用程序样式应用程序样式是指在应用程序样式是指在App.xaml文件的文件的Application.Resources属性中声明的样式属性中声明的样式。这种这种样式的作用范围为整个应用程序项目,对项目样式的作用范围为整个应用程序项目,对项目中的所有窗口或页面都起作用。中的所有窗口或页面都起作用。269.1.4 样式的级联控制和资源字典样式的级联控制和资源字典2资源字典资源字典资源字典是指在单独的资源字典是指在单独的XAML文件中定义的样式文件中定义的样式。在元素样式、应用程序样式中都可以引用资源字典。在元素样式、应用程序样式中都可以引用资源字典。例如:例如:uuuuu还可以在一个资源字典中合并其他的资源还可以在一个资源字典中合并其他的资源字典字典。279.1.4 样式的级联控制和资源字典样式的级联控制和资源字典3使用使用C#代码定义和引用样式代码定义和引用样式可以在可以在ResourceDictionary对象对象进行进行代码访问代码访问。uResourceDictionaryd1=border1.Resources;ud1.Add(backgroundKey,Brushes.Blue);通过通过对象的对象的Resources“key”直接访问某个直接访问某个XAML资源资源。使用。使用FindResource(key)方法和方法和TryFindResource(key)方法来搜索方法来搜索XAML资源资源。uBrushb1=(Brush)border1.TryFindResource(backgroundKey);也可以从资源集合中获取定义的样式,然后将其分也可以从资源集合中获取定义的样式,然后将其分配给元素的配给元素的Style属性属性。utextblock1.Style=(Style)(this.ResourcesTitleText);289.1.4 样式的级联控制和资源字典样式的级联控制和资源字典【例【例9-1】演示样式的级联控制和资源字典的基演示样式的级联控制和资源字典的基本本用法用法299.2 9.2 控件模板与触发器控件模板与触发器9.2.1控件模板控件模板9.2.2触发器触发器9.2.3主题主题9.2.1 控件模板控件模板WPF提供了两种模板化提供了两种模板化技术技术:样式样式模板模板化化:用于用于定义控件的定义控件的外观外观数据数据模板模板化化:主要主要用于绑定数据源用于绑定数据源。1样式模板样式模板样式模板化是指利用控件模板样式模板化是指利用控件模板(ControlTemplate)定义控件的外观,从而让控)定义控件的外观,从而让控件呈现出各种形式。件呈现出各种形式。在在Style元素中,用元素中,用Template属性定义控件的属性定义控件的模板模板319.2.1 控件模板控件模板1样式模板样式模板【例【例9-2】演示样式模板化的基本演示样式模板化的基本用法用法。329.2.2 触发器触发器触发器(触发器(Trigger)是指某种条件发生变化时自)是指某种条件发生变化时自动触发某些动作。在动触发某些动作。在和和之间,之间,可以利用样式设置触发器。可以利用样式设置触发器。1属性触发器属性触发器属性触发器是指用控件的属性作为触发属性触发器是指用控件的属性作为触发条件条件。u即即当对象的属性发生变化时自动更改对应的其他属性当对象的属性发生变化时自动更改对应的其他属性。有有两种类型的属性两种类型的属性触发器触发器:uTrigger,用于单条件触发,用于单条件触发;uMultiTrigger,用于多条件触发。,用于多条件触发。339.2.2 触发器触发器1属性触发器属性触发器349.2.2 触发器触发器2事件触发器事件触发器事件触发器(事件触发器(EventTrigger)是指用路由事件)是指用路由事件(RoutedEvent)作为触发条件,即当引发指定)作为触发条件,即当引发指定的路由事件时启动一组操作,例如,动画等的路由事件时启动一组操作,例如,动画等。3数据触发器数据触发器数据触发器是利用控件的数据触发器是利用控件的DataContext来触发的来触发的。(1)DataTriggeruDataTrigger用控件的用控件的DataContext的单个属性作为触的单个属性作为触发条件。发条件。u(2)MultiDataTriggeruMultiDataTrigger用控件的用控件的DataContext的多个属性作的多个属性作为触发条件。为触发条件。359.2.2 触发器触发器【例【例9-3】演示触发器的基本演示触发器的基本用法用法。369.2.3 主题主题主题(主题(Themes)也叫外观,是在系统或应用程)也叫外观,是在系统或应用程序级别上定义的一组序级别上定义的一组资源资源。利用利用主题,可以一次性指定项目内所有元素的默主题,可以一次性指定项目内所有元素的默认样式,为应用程序的控件和其他可视元素提供认样式,为应用程序的控件和其他可视元素提供默认的外观默认的外观。WPF应用程序中,主题是通过资源字典来实现应用程序中,主题是通过资源字典来实现的的。对于应用程序开发人员来说,既可以引用系统对于应用程序开发人员来说,既可以引用系统主题,也可以自定义主题。主题,也可以自定义主题。379.2.3 主题主题1系统主题系统主题系统主题是指操作系统提供的主题,这些主题都系统主题是指操作系统提供的主题,这些主题都保存在对应的保存在对应的.dll文件中文件中。如果不指定系统主题,如果不指定系统主题,WPF会使用安装操作系统会使用安装操作系统时默认选择的时默认选择的主题主题。2自定义主题自定义主题Wpfz项目中包含了自定义主题的代码,并在项目中包含了自定义主题的代码,并在ExampleWpfApp项目中引用了项目中引用了Wpfz项目中自定项目中自定义的义的主题主题。389.2.3 主题主题3如何使用主题如何使用主题(1)添加引用。鼠标右击项目的【引用】,选择)添加引用。鼠标右击项目的【引用】,选择【添加引用】命令,在弹出的窗口中,勾选要引用【添加引用】命令,在弹出的窗口中,勾选要引用的的dll文件。文件。(2)鼠标单击已经引用的)鼠标单击已经引用的dll文件,将其【复制本文件,将其【复制本地】属性改为地】属性改为True。注意注意这一步不能省略,否则将这一步不能省略,否则将无法找到对应的主题文件无法找到对应的主题文件。(3)将使用的主题合并到)将使用的主题合并到App.xaml的资源字典中,的资源字典中,以便在整个项目中都能使用它。以便在整个项目中都能使用它。399.3 WPF9.3 WPF动画设计基础动画设计基础9.3.1WPF动画计时系统及其分类动画计时系统及其分类9.3.2WPF动画计时系统的常用属性动画计时系统的常用属性9.3.3基本动画基本动画9.3.4*关键帧动画关键帧动画9.3.5*路径动画路径动画9.3.1 WPF动画计时系统及其分类动画计时系统及其分类WPF内部实现了一套高效的动画计时系统,开内部实现了一套高效的动画计时系统,开发人员可利用它直接对控件的附加属性值进行发人员可利用它直接对控件的附加属性值进行动画处理。动画处理。1.基本概念基本概念WPF提供提供了了的的动画动画类型都在类型都在System.Windows.Media.Animation命名空间命名空间下下。在在WPF应用程序中,建议尽量使用应用程序中,建议尽量使用WPF动画计动画计时时系统系统。419.3.1 WPF动画计时系统及其分类动画计时系统及其分类2.WPF动画计时系统的动画计时系统的分类分类WPF动画计时系统分为基本动画、关键帧动画动画计时系统分为基本动画、关键帧动画和路径和路径动画动画。(1)基本动画)基本动画(From/To/By)基本动画是用基本动画是用From/To或者或者From/By来实现来实现的的。完成过渡所需的时间完成过渡所需的时间由由Duration属性属性来确定来确定。基本动画可控制多种类型,这些动画类的后缀都基本动画可控制多种类型,这些动画类的后缀都带带Animation。uAnimationByte、Int16、Int32、Int64、Single、Double、Decimal、Color、Point、Size、Thickness、Rect、Vector、Vector3D、Quaternion、Rotation3D429.3.1 WPF动画计时系统及其分类动画计时系统及其分类(1)基本动画)基本动画(From/To/By)常用的基本动画类有常用的基本动画类有DoubleAnimation、ColorAnimation和和PointAnimation。DoubleAnimation适用于对适用于对Rectangle、Button、Label等控件的宽度、高度、不透明度等等控件的宽度、高度、不透明度等Double类型的附加属性进行动画处理,如滑动效果、拉类型的附加属性进行动画处理,如滑动效果、拉帘效果、渐入渐出效果等。帘效果、渐入渐出效果等。ColorAnimation适用于对颜色(前景色、背景色、适用于对颜色(前景色、背景色、填充色等)进行渐变动画处理。填充色等)进行渐变动画处理。PointAnimation适用于对位置进行动画处理。适用于对位置进行动画处理。439.3.1 WPF动画计时系统及其分类动画计时系统及其分类(1)基本动画)基本动画(From/To/By)基本动画基本动画只需只需要在相邻的两个时间点分别设置控要在相邻的两个时间点分别设置控件的属性起始值和结束件的属性起始值和结束值值。如果同时指定如果同时指定From、By和和To,则忽略,则忽略By的值的值。从从是否可交互以及受支持的程度来看,又可以将是否可交互以及受支持的程度来看,又可以将基本动画(基本动画(From/To/By)进一步细分)进一步细分为为:u本地本地动画动画、时钟动画、时钟动画、故事故事板动画板动画。u本地动画一般用于不需要用户参与交互操作的本地动画一般用于不需要用户参与交互操作的情况情况。如果希望通过界面让用户参与交互操作,此时可以用如果希望通过界面让用户参与交互操作,此时可以用时钟动画或者故事板动画(时钟动画或者故事板动画(Storyboard)来)来实现实现。u故事故事板动画支持板动画支持XAML,应用,应用范围更广,可适用于任何范围更广,可适用于任何应用场合。应用场合。449.3.1 WPF动画计时系统及其分类动画计时系统及其分类(2)关键帧动画)关键帧动画关键帧动画在基本动画的基础上增加了控制动画关键帧动画在基本动画的基础上增加了控制动画变化的关键变化的关键帧帧。u包含包含多条多条“并行执行并行执行”的时间线(一个属性对应一条时的时间线(一个属性对应一条时间线),每条时间线上都可以指定多个关键时间点,控间线),每条时间线上都可以指定多个关键时间点,控件或元素的附加属性值在这些关键时间点上使用内插算件或元素的附加属性值在这些关键时间点上使用内插算法实现每一对两两相邻的关键帧之间逐渐过渡法实现每一对两两相邻的关键帧之间逐渐过渡。(3)路径动画)路径动画路径动画在关键帧动画的基础上又增加了路径规路径动画在关键帧动画的基础上又增加了路径规划划功能功能。u包含包含多条并行执行的多条并行执行的时间线,时间线,但是每条时间线上关键时但是每条时间线上关键时间点上属性的值是通过事先规划的路径计算出来间点上属性的值是通过事先规划的路径计算出来的的。459.3.2 WPF动画计时系统的常用属性动画计时系统的常用属性1故事板和故事板和时间线时间线在在WPF动画计时系统中,基本动画、关键帧动动画计时系统中,基本动画、关键帧动画以及路径动画都是基于故事板(画以及路径动画都是基于故事板(Storyboard类)来实现的。类)来实现的。(1)StoryboardStoryboard是一组时间线的容器,它由一条总时是一组时间线的容器,它由一条总时间线控制,在它包含的所有时间线上定义的动画都间线控制,在它包含的所有时间线上定义的动画都可以并行执行,而且还可以通过该容器整体控制动可以并行执行,而且还可以通过该容器整体控制动画的启动、暂停、继续、停止等交互操作画的启动、暂停、继续、停止等交互操作。469.3.2 WPF动画计时系统的常用属性动画计时系统的常用属性1故事板和时间线故事板和时间线(1)Storyboard使用使用Storyboard进行动画处理需要完成下面的步进行动画处理需要完成下面的步骤。骤。u声明一个声明一个Storyboard以及一个或多个动画。以及一个或多个动画。u使用使用TargetName和和TargetProperty附加属性指定每个附加属性指定每个动画的目标对象和属性。动画的目标对象和属性。u启动启动Storyboard执行动画。执行动画。启动启动Storyboard的办法有两种的办法有两种:u调用调用Storyboard类提供的类提供的Begin方法来方法来实现实现u在在XAML中利用中利用Trigger或或DataTrigger来实现。来实现。479.3.2 WPF动画计时系统的常用属性动画计时系统的常用属性1故事板和时间线故事板和时间线(2)Timeline时间线(时间线(Timeline)表示一个总时间段,总时间)表示一个总时间段,总时间段由一个或多个子时间段组成,在每条时间线的每段由一个或多个子时间段组成,在每条时间线的每个子时间段内,都可以定义一个动画个子时间段内,都可以定义一个动画。Timeline类是定义动画计时行为的抽象基类。该类是定义动画计时行为的抽象基类。该抽象类提供了控制动画播放的属性,从该类继承的抽象类提供了控制动画播放的属性,从该类继承的各种动画类都可以使用这些属性。各种动画类都可以使用这些属性。489.3.2 WPF动画计时系统的常用属性动画计时系统的常用属性2常用常用属性属性(1)Duration属性属性该属性是一个该属性是一个TimeSpan类型,表示动画持续的时类型,表示动画持续的时间,在间,在XAML中用中用“时时:分分:秒秒”的形式表示的形式表示。默认默认情况下,当时间线到达情况下,当时间线到达Duration指定的值时,指定的值时,就会停止播放动画就会停止播放动画。当当子子时间线的长度大于时间线的长度大于Storyboard时间线本身的时间线本身的长度,当长度,当Storyboard停止播放时,它的所有子时停止播放时,它的所有子时间线依然会立即停止间线依然会立即停止播放播放。499.3.2 WPF动画计时系统的常用属性动画计时系统的常用属性2常用常用属性属性(2)RepeatBehavior属性属性该属性指定时间线播放的重复行为。该属性指定时间线播放的重复行为。默认情况下,重复次数为默认情况下,重复次数为1.0,即播放一次时间线,即播放一次时间线。uRepeatBehavior=0:0:10表示重复到表示重复到10s为止;为止;RepeatBehavior=2.5x表示重复表示重复2.5次;次;RepeatBehavior=Forever表示一直重复,直到手动停表示一直重复,直到手动停止或停止计时系统为止止或停止计时系统为止。(3)AutoReverse属性属性该属性指定该属性指定Timeline在每次向前迭代播放结束后是在每次向前迭代播放结束后是否继续反向迭代播放。否继续反向迭代播放。509.3.2 WPF动画计时系统的常用属性动画计时系统的常用属性2常用常用属性属性(4)BeginTime属性属性该属性用于指定时间线开始的时间。如果不指定开该属性用于指定时间线开始的时间。如果不指定开始时间,开始时间默认为始时间,开始时间默认为0。对于容器内的每条时间线来说,注意其开始时间是对于容器内的每条时间线来说,注意其开始时间是相对于父时间线来说的相对于父时间线来说的。(5)FillBehavior属性属性该属性表示当该属性表示当Timeline到达活动期的结尾时,即动到达活动期的结尾时,即动画播放结束时,是停止动画播放画播放结束时,是停止动画播放(FillBehavior=Stop)还是保持动画结束时的值)还是保持动画结束时的值(FillBehavior=HoldEnd),默认值为),默认值为HoldEnd。519.3.2 WPF动画计时系统的常用属性动画计时系统的常用属性2常用常用属性属性(6)控制时间线速度的属性)控制时间线速度的属性Timeline类提供了类提供了3个控制时间线速度的属性个控制时间线速度的属性。u【SpeedRatio】属性:该属性指定】属性:该属性指定Timeline相对于其父相对于其父时间线的时间进度速率时间线的时间进度速率。u【AccelerationRatio】属性:该属性指定动画期间时间】属性:该属性指定动画期间时间线相对于线相对于Duration的加速度,该值必须在的加速度,该值必须在0.0和和1.0之间之间。u【DecelerationRatio】属性:该属性指定动画期间时间】属性:该属性指定动画期间时间线相对于线相对于Duration的减速度,其值必须在的减速度,其值必须在0.0和和1.0之间之间。可以可以同时使用同时使用AccelerationRatio和和DecelerationRatio。529.3.3 基本动画基本动画基本动画是一种随着时间变化自动将元素的某个基本动画是一种随着时间变化自动将元素的某个属性从起始值逐渐过渡到结束值的过程。属性从起始值逐渐过渡到结束值的过程。基本动画又可以进一步细分为本地动画、时钟动画基本动画又可以进一步细分为本地动画、时钟动画和故事板动画和故事板动画。1本地动画本地动画本地动画是指直接对对象的属性值进行处理的动画,本地动画是指直接对对象的属性值进行处理的动画,这种动画受计时系统支持,但不能对动画进行暂停这种动画受计时系统支持,但不能对动画进行暂停等交互操作。等交互操作。本地动画只能用本地动画只能用C#代码来实现,无法用代码来实现,无法用XAML来描来描述。述。539.3.3 基本动画基本动画1本地动画本地动画【例【例9-4】演示本地动画的基本用法,将按钮的宽演示本地动画的基本用法,将按钮的宽度和背景色进行动画度和背景色进行动画处理处理。549.3.3 基本动画基本动画2时钟动画时钟动画时钟动画适用于处理大量类型相同而且需要交互的场时钟动画适用于处理大量类型相同而且需要交互的场合合。【例【例9-5】演示时钟动画的基本用法。演示时钟动画的基本用法。559.3.3 基本动画基本动画3故事板动画故事板动画WPF提供了两种故事板:提供了两种故事板:ParallelTimeline和和Storyboard,这两个类都是从,这两个类都是从Timeline类继承类继承的的。在在一个一个Storyboard中可以包含多个中可以包含多个ParallelTimeline,每个,每个ParallelTimeline又可以包又可以包含多个含多个TimeLine。基本动画、关键帧动画、路径动画都可以用基本动画、关键帧动画、路径动画都可以用Storyboard来实现。用来实现。用Storyboard实现动画时,既实现动画时,既可以用可以用C#代码来编写,也可以用代码来编写,也可以用XAML来描述。来描述。569.3.3 基本动画基本动画3故事板动画故事板动画一个一个XAML文件中可以定义多个文件中可以定义多个Storyboard,每个,每个Storyboard都必须指明以下内容。都必须指明以下内容。u在在Storyboard中,用中,用x:Key定义一个关键字,以便让事件定义一个关键字,以便让事件触发器知道使用的是哪个故事板。触发器知道使用的是哪个故事板。u 在在动画中,指明该故事板应用的目标对象名动画中,指明该故事板应用的目标对象名(Storyboard.TargetName)和属性类型)和属性类型(Storyboard.TargetProperty)。用用C#代码实现时,需要创建代码实现时,需要创建Storyboard的实例,并的实例,并通过通过Storyboard提供的提供的SetTarget静态方法指明动画静态方法指明动画和目标对象,通过和目标对象,通过SetTargetProperty静态方法指明静态方法指明动画和附加属性的类型。动画和附加属性的类型。579.3.3 基本动画基本动画3故事板动画故事板动画【例【例9-6】演示演示Storyboard的基本用法。的基本用法。589.3.3 基本动画基本动画3故事板动画故事板动画【例【例9-6】演示演示Storyboard的基本用法。的基本用法。599.3.3 基本动画基本动画3故事板动画故事板动画【例【例9-6】演示演示Storyboard的基本用法。的基本用法。609.3.4*关键帧动画关键帧动画关键关键帧动画在基本动画的基础上增加了控制动画帧动画在基本动画的基础上增加了控制动画变化的关键时间点,此关键时间点称为关键帧变化的关键时间点,此关键时间点称为关键帧。1关键帧动画的分类关键帧动画的分类关键帧动画本质上也是通过修改附加属性的值来实关键帧动画本质上也是通过修改附加属性的值来实现动画效果现动画效果的的。它它和基本动画的区别是:关键帧动画可以在每段动和基本动画的区别是:关键帧动画可以在每段动画中同时指定多个关键时间点和关键属性值,而基画中同时指定多个关键时间点和关键属性值,而基本动画每段最多只能指定两个值。本动画每段最多只能指定两个值。关键帧动画类型的命名约定为:关键帧动画类型的命名约定为:uAnimationUsingKeyFrames619.3.4*关键帧动画关键帧动画1关键帧动画的分类关键帧动画的分类在每个关键帧动画类型的开始标记和结束标记之间,在每个关键帧动画类型的开始标记和结束标记之间,都可以使用多种内插关键帧类型,每个内插关键帧都可以使用多种内插关键帧类型,每个内插关键帧都由关键时间和关键值组成都由关键时间和关键值组成。内插关键帧类型是利用内插方法来实现的,内插关内插关键帧类型是利用内插方法来实现的,内插关键帧类型的命名约定为:键帧类型的命名约定为:uKeyFrame内插方法内插方法u离散离散u线性线性u样条样条629.3.4*关键帧动画关键帧动画2关键帧动画基本用法关键帧动画基本用法(1)在关键帧动画中插入样条动画)在关键帧动画中插入样条动画(2)在关键帧动画中插入缓动函数)在关键帧动画中插入缓动函数u定义缓动函数的办法是在内插关键帧动画的定义缓动函数的办法是在内插关键帧动画的EasingFu
展开阅读全文

开通  VIP会员、SVIP会员  优惠大
下载10份以上建议开通VIP会员
下载20份以上建议开通SVIP会员


开通VIP      成为共赢上传

当前位置:首页 > 包罗万象 > 大杂烩

移动网页_全站_页脚广告1

关于我们      便捷服务       自信AI       AI导航        抽奖活动

©2010-2026 宁波自信网络信息技术有限公司  版权所有

客服电话:0574-28810668  投诉电话:18658249818

gongan.png浙公网安备33021202000488号   

icp.png浙ICP备2021020529号-1  |  浙B2-20240490  

关注我们 :微信公众号    抖音    微博    LOFTER 

客服