Windows 8系统的动画库中包含了丰富的主题动画,在开发Windows应用商店应用时,使用主题动画编写较少的代码即可实现所期望的动画效果。下面介绍一些常用的主题动画,读者可以根据每种主题动画提供的动画效果,在应用程序中加入相应的主题动画。

q  FadeInThemeAnimation,代表预配置不透明度动画,用于设置控件在屏幕中的淡入效果。

q  FadeOutThemeAnimation,用于设置控件从界面中删除或隐藏时的淡出效果。

q  DropTargetItemThemeAnimation,应用到潜在的拖放目标元素的预配置动画。

q  PopInThemeAnimation,控件的弹入组件显示时应用在控件上的预配置动画,此动画结合了不透明度和转换。

q  PopOutThemeAnimation,控件的弹入组件关闭或删除时应用在控件上的预配置动画,此动画结合了不透明度和转换。

q  RepositionThemeAnimation,界面控件重新放置时使用的预配置动画。

q  PointerDownThemeAnimation,代表一个预配置动画,当用户单击元素时动画运行。

q  PointerUpThemeAnimation,在点击一个项目或元素后(指针不再悬停在上面)运行的用户操作预配置动画。

由于上述主题动画实现代码很类似,这里仅以FadeOutThemeAnimation动画为例,实现一个矩形淡出屏幕的动画效果。

在一个打开的Windows 应用商店项目中新建一个空白页,并命名为FadeOutThemeAnimationPage,双击打开此页面的FadeOutThemeAnimationPage.xaml文件,在原有的Grid元素中添加如下代码。

<StackPanel>   

    <StackPanel.Resources>

        <Storyboard x:Name="storyboard">

            <FadeOutThemeAnimation  Storyboard.TargetName="MyRectangle"/>

        </Storyboard>

    </StackPanel.Resources>

</StackPanel>

<Rectangle PointerPressed="MyRectangle_PointerPressed" x:Name="MyRectangle"  Fill="Blue" Width="200" Height="300"/>

以上代码首先在StackPanel元素的资源字典StackPanel.Resources中添加一个作为动画资源的Storyboard元素,并命名为storyboard,以便在后台文件中调用storyboard对象的Begin方法启动动画。接着在Storyboard 元素中添加一个主题动画FadeOutThemeAnimation。

添加好了主题动画以后,下面继续在原有的Grid元素中添加一个Rectangle元素作为动画目标,同时指定此元素的的Fill属性值为蓝色(Blue),Width、Height属性值分别为200和300像素,并将其命名为MyRectangle。接着为Rectangle元素的PointerPressed事件定义名为MyRectangle_PointerPressed的事件处理方法,当触发此事件时将会启动主题动画。最后通过设置上面定义的Storyboard元素的TargetName属性值为MyRectangle,将主题动画效果定位到Rectangle元素上。

接下来打开FadeOutThemeAnimationPage.xaml.cs文件,为PointerPressed事件添加事件处理方法MyRectangle_PointerPressed,代码如下所示:

private void MyRectangle_PointerPressed(object sender, PointerRoutedEventArgs e)

{

    storyboard.Begin();

}

上面的代码通过调用storyboard对象的Begin方法能够实现启动主题动画的操作。运行此页面,然后单击屏幕中的矩形,可以清晰的看到此矩形产生了淡出屏幕的动画效果。

主题动画的有些默认属性值是可以改变的,例如要减慢淡出屏幕的速度,可以通过增大FadeOutThemeAnimation对象的Duration属性值来实现。读者可以参照以上列举的示例,试着为控件添加不同的主题动画。

Windows Store App 主题动画的更多相关文章

  1. Windows Store App 过渡动画

    Windows Store App 过渡动画     在开发Windows应用商店应用程序时,如果希望界面元素进入或者离开屏幕时显得自然和流畅,可以为其添加过渡动画.过渡动画能够及时地提示用户屏幕所发 ...

  2. Windows Store App 关键帧动画

    关键帧动画和插值动画类似,同样可以根据目标属性值的变化产生相应的动画效果,不同的是,插值动画是在两个属性值之间进行渐变,而关键帧动画打破了仅通过两个属性值控制动画的局限性,它可以在任意多个属性值之间进 ...

  3. Windows Store App 插值动画

    插值动画支持DoubleAnimation.ColorAnimation和PointAnimation类型的动画.其中比较常用的是DoubleAnimation动画,它可以用来控制界面元素的Doubl ...

  4. 在桌面程序上和Metro/Modern/Windows store app的交互(相互打开,配置读取)

    这个标题真是取得我都觉得蛋疼..微软改名狂魔搞得我都不知道要叫哪个好.. 这边记录一下自己的桌面程序跟windows store app交互的过程. 由于某些原因,微软的商店应用的安全沙箱导致很多事情 ...

  5. Windows store app[Part 4]:深入WinRT的异步机制

    接上篇Windows store app[Part 3]:认识WinRT的异步机制 WinRT异步机制回顾: IAsyncInfo接口:WinRT下异步功能的核心,该接口提供所有异步操作的基本功能,如 ...

  6. Windows store app[Part 3]:认识WinRT的异步机制

    WinRT异步机制的诞生背景 当编写一个触控应用程序时,执行一个耗时函数,并通知UI更新,我们希望所有的交互过程都可以做出快速的反应.流畅的操作感变的十分重要. 在连接外部程序接口获取数据,操作本地数 ...

  7. 05、Windows Store app 的图片裁切(更新)

    在 Win Phone Silverlight api 中,有一个 PhotoChooserTask 选择器,指定宽.高属性,在选择图片的时候, 可以进行裁切,代码: PhotoChooserTask ...

  8. 01、Windows Store APP 设置页面横竖屏的方法

    在 windows phone store app 中,判断和设置页面横竖屏的方法,与 silverlight 中的 Page 类 不同,不能直接通过 Page.Orientation 进行设置.而是 ...

  9. Windows store app[Part 1]:读取U盘数据

    Windows 8系统下开发App程序,对于.NET程序员来说,需要重新熟悉下类库. 关于WinRT,引用一张网上传的很多的结构图: 图1 针对App的开发,App工作在系统划定的安全沙箱内,所以通过 ...

随机推荐

  1. Velocity(6)——#if指令

    下面是#If指令的一个简单而完整的示例: #if ($foo < 10) Go North #elseif ($foo == 10) Go East #else Go West#end 不能漏掉 ...

  2. java学习:Hibernate入门

    相对微软的linq-to-sql或EF框架而言,"Hibernate对于eclipse的集成开发“ 新手并不容易掌握,下面是新手上路的步骤: 一.准备工作: 1.先下载eclipse (官网 ...

  3. Java程序员从笨鸟到菜鸟之(十三)java网络通信编程

    本文来自:曹胜欢博客专栏.转载请注明出处:http://blog.csdn.net/csh624366188 首先声明一下,刚开始学习java网络通信编程就对他有一种畏惧感,因为自己对网络一窍不通,所 ...

  4. [原创]java WEB学习笔记93:Hibernate学习之路---Hibernate 缓存介绍,缓存级别,使用二级缓存的情况,二级缓存的架构集合缓存,二级缓存的并发策略,实现步骤,集合缓存,查询缓存,时间戳缓存

    本博客的目的:①总结自己的学习过程,相当于学习笔记 ②将自己的经验分享给大家,相互学习,互相交流,不可商用 内容难免出现问题,欢迎指正,交流,探讨,可以留言,也可以通过以下方式联系. 本人互联网技术爱 ...

  5. Java Map 集合类简介

      作者:Jack Shirazi 了解最常用的集合类型之一 Map 的基础知识以及如何针对您应用程序特有的数据优化 Map. 本文相关下载: · Jack 的 HashMap 测试 · Oracle ...

  6. C# 获取sql数据库表列名,及列名说明备注信息

    获取指定表列名及备注: select * from syscolumns where id=object_id(N'表名') SELECT a.name [column], b.name type, ...

  7. jquery mobile界面数据刷新

    JQM里面当我们更新了某些页面标签(如: listview, radiobuttons, checkboxes, select menus)里的数据时,必须做refresh操作. 为什么必须做refr ...

  8. [python]使用virtualenv处理python版本问题

    1. 更新virutalenv $ sudo easy_install --upgrade virtualenv   2. 新建virtualenv实例, 确保在your home directory ...

  9. Filter过滤的2种方式

    1.新建一个过滤器,继承ActionFilterAttribute,然后重写 public class DemoFilterAttribute:ActionFilterAttribute { //在A ...

  10. 50个常用的JQuery代码

    1. 如何创建嵌套的过滤器 //允许你减少集合中的匹配元素的过滤器, //只剩下那些与给定的选择器匹配的部分.在这种情况下, //查询删除了任何没(:not)有(:has) //包含class为“se ...