本篇主要针对界面进行动画效果处理。首先在打开或关闭界面时,使其产生动态效果而不是生硬的显示或消失(如下图)。其次在鼠标放到关闭窗口图标上时,使其出现闪动效果。下面将通过Storyboard和EventTrigger实现这些效果。

    

1. 先从简单的入手吧,为关闭图标增加闪动效果,首先要在ScrollViewer中添加一个关闭窗口图标。

... ...
<ScrollViewer Name="queryScrollViewer" ScrollViewer.VerticalScrollBarVisibility="Visible"><StackPanel Orientation="Vertical"><!-- 关闭窗口图标,尺寸设为20x20 --><Image Source="image/close.png" Name="closeImage" Height="20" Width="20"Cursor="Hand" Margin="5" HorizontalAlignment="Right"><Image.ToolTip>Close</Image.ToolTip></Image><Grid Name="queryGrid"></Grid></StackPanel>
</ScrollViewer>
... ...

2. 在Window.Resources中添加一个闪动效果,这个DoubleAnimation针对closeImage的Width进行缩小操作,并处于循环重复状态。这样可以保证鼠标在其上时,它总是闪动状态。

<Window.Resources><Storyboard x:Key="flashCloseImage"><DoubleAnimation Storyboard.TargetName="closeImage" Storyboard.TargetProperty="Width"To="15" Duration="0:0:0.8" RepeatBehavior="Forever"></DoubleAnimation></Storyboard>... ...
</Window.Resources>

3. 效果添加好了,然后就要增加能使其能动起来的事件(EventTrigger),一个是鼠标放上(MouseEnter)开始闪动,另一个是鼠标离开(MouseLeave)停止。另外,由于这个图标也控制着窗口关闭效果,所以再为它加一个点击(MouseLeftButtonDown)事件(该事件效果后面会继续讲到)。

<Window.Triggers><!-- 开始闪动,而且要调用Window.Resources中的x:Key=”flashCloseImage” --><EventTrigger SourceName="closeImage" RoutedEvent="Image.MouseEnter"><BeginStoryboard Name="closeImageBeginStoryboard" Storyboard="{StaticResource flashCloseImage}">
</BeginStoryboard></EventTrigger><!-- 停止闪动,它的对象就是上面的closeImageBeginStoryboard --><EventTrigger SourceName="closeImage" RoutedEvent="Image.MouseLeave"><StopStoryboard BeginStoryboardName="closeImageBeginStoryboard">
</StopStoryboard></EventTrigger><!-- 关闭窗口事件,稍后会讲 --><EventTrigger SourceName="closeImage" RoutedEvent="Image.MouseLeftButtonDown"><BeginStoryboard Name="closeQueryCanvasStoryboard" Storyboard="{StaticResource closeQueryCanvas}">
</BeginStoryboard></EventTrigger>... ...
</Window.Triggers>

4. 所有动画效果和事件都添加好了,可以看看效果:

待续 … …

本文转自Gnie博客园博客,原文链接:http://www.cnblogs.com/gnielee/archive/2009/12/12/wpf-xmarket-game-part6.html,如需转载请自行联系原作者

WPF编游戏系列 之六 动画效果(1)相关推荐

  1. WPF编游戏系列 之四 用户控件

    在上一篇<WPF编游戏系列 之三 物品清单>中,对物品清单进行了演示,其中反复用到了同一组控件(如下图),而且 颜昌钢也指出在3.2.2中使用的C#代码过多,其实我在写这些代码时也有同感, ...

  2. ui动效 unity_Unity中实现仿主机游戏的UI动画效果

    在UI动画上花费精力,最早是日本的游戏喜欢搞,欧美的游戏都非常不重视(比如暗黑2),其实我也不懂为何日本游戏这么重视这种东西,因为早期做这种东西还挺麻烦的,大概是他们对于小而美的追求吧--总之,后来的 ...

  3. WPF实现聚光灯照亮文字动画效果

    实现效果如下: 思路: 在Canvas里同一位置放置两个TextBlock,对上层字体设置路径动画,并设置其Clip为EllipseGeometry. 步骤: 1.窗体xaml <Window ...

  4. WPF实现字体霓虹灯渐变动画效果

    实现效果如下: 思路:采用LinearGradientBrush线性渐变色刷来实现 源码: <TextBlock Text="LinearGradientBrush" Hor ...

  5. wpf仿苹果桌面图标动画效果

    开局一张图后面全靠编. 源码下载地址:https://download.csdn.net/download/musx01230/10912990

  6. 【Android的从零单排开发日记】之入门篇(十六)——Android的动画效果

    什么是动画,动画的本质是通过连续不断地显示若干图像来产生"动"起来的效果.比如说一个移动的动画,就是在一定的时间段内,以恰当的速率(起码要12帧/秒以上,才会让人产生动起来的错觉) ...

  7. C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):目录

    本系列教程的示例代码下载(感谢 银光中国 提供资源分流): 第一部分源码:WPFGameTutorial_PartI(1-20节) 第二部分源码:WPFGameTutorial_PartII(21-2 ...

  8. C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(二)让物体动起来②

    第二种方法,CompositionTarget动画,官方描述为:CompositionTarget对象可以根据每个帧回调来创建自定义动画.其实直接点,CompositionTarget创建的动画是基于 ...

  9. C#开发WPF/Silverlight动画及游戏系列教程(Game Tutorial):(一)让物体动起来①

    序:自从QXGame(WPF GAME ENGINE)游戏引擎公布以来,受到很多朋友的热切关注,于是乎有了写教程的想法.那么从今天开始,我将带领大家一步一步的学会如何使用纯C#开发WPF/Silver ...

最新文章

  1. 关于MATLAB处理大数据坐标文件2017529
  2. 什么心态阻碍了你职业的发展
  3. python 查找指定字符在字符串中的次数(全)
  4. 第二百一十七节,jQuery EasyUI,NumberSpinner(数字微调)组件
  5. 【渝粤教育】广东开放大学 刑法 形成性考核 (42)
  6. 将试用版visual studio 2008升级为正式版 --更新
  7. TensorFlow打印一个tensor值报错
  8. 安装mongodb时为什么一直卡着不动
  9. 删除下拉框只找23火星软件_下拉推广选择23火星软件
  10. 三维点云学习(3)1-聚类数学理论
  11. eclipse+Maven安装和配置
  12. java仿win7计算器布局
  13. MFC Windows 程序设计[五]之绘制表格Accel
  14. 马哥 python培训
  15. 组合导航:中海达iNAV2产品描述及接口描述
  16. [CAN] CAN BUS的错误检测和错误状态管理
  17. qt web混合编程_Qt+VS混合编程教程
  18. 【将列表中的每个数据转换成倒数 np.reciprocal()】
  19. Ubuntu跳过开机自检
  20. C语言程序设计精髓(MOOC第12周 )题

热门文章

  1. 【观点】微博的弊端和它的真正意义
  2. SQL Server 2005 Analysis Services实践(一)
  3. APP签名MD5获取
  4. Docker hello workd
  5. saltstack 任务管理和集群(三)
  6. 遇到的几个开机启动故障
  7. 数据挖掘算法 1 ID3(python)
  8. C++ 连接数据库的入口和获取列数、数据
  9. 遇到:ORA-27121: UNABLE TO DETERMINE SIZE OF SHAR...
  10. 关于T4,正在发生的...