WPF编游戏系列 之六 动画效果(1)

原文:WPF编游戏系列 之六 动画效果(1)

       本篇主要针对界面进行动画效果处理。首先在打开或关闭界面时,使其产生动态效果而不是生硬的显示或消失(如下图)。其次在鼠标放到关闭窗口图标上时,使其出现闪动效果。下面将通过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. 所有动画效果和事件都添加好了,可以看看效果:

待续 … …

原文地址:https://www.cnblogs.com/lonelyxmas/p/9442439.html

时间: 2024-12-12 06:34:55

WPF编游戏系列 之六 动画效果(1)的相关文章

VUE系列之动画效果

一.新建VUE页面(VUE动画效果页) 二.配置路由 三.主页增加链接 代码: <template> <div> <div class="title" > <transition name="fade"> <p v-if="show">vue 动画</p> </transition> </div> <button v-on:click="

WPF实现3D翻转的动画效果

1.前端代码实现 1.1 原理见代码注析 <Grid MouseDown="Grid_MouseDown"> <Viewport3D> <Viewport3D.Camera> <!-- Position属性指定3D空间中摄像机的位置,LookDirection属性为摄像机方向 --> <PerspectiveCamera Position="0 0 500" LookDirection="0 0 -1&

WF+WCF+WPF第四天-WF动画效果

本例子改造了 麒麟大神,原文地址:http://www.cnblogs.com/zhuqil/archive/2010/04/21/MoveFlow.html 效果: 活动: 水平移动:HorizontalMove 垂直移动:VerticalMove 流程: 水平跑-垂直跑-水平跑-反向水平跑-反向垂直跑-反向水平跑 界面: 界面是用Win8风格做的 实现:实现很简单,将WPF中的动画做参数传到流程当中.再根据流程图移动. 总结:我正在努力学习WF4.0技术,希望大家给点意见和支持,谢谢. 代码

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

      什么是动画,动画的本质是通过连续不断地显示若干图像来产生“动”起来的效果.比如说一个移动的动画,就是在一定的时间段内,以恰当的速率(起码要12帧/秒以上,才会让人产生动起来的错觉)每隔若干时间在屏幕上更新一次位置.游戏中的动画效果也是由此而来.同样还有其他属性变更所引起的动画效果,从数学的角度来看,包括:(1)平移(2)旋转(3)缩放(4)透明度.当然这些属性可以组合起来使用,来达到更绚丽的画面.但是不论什么样的组合方式,我们都可以统一用Matirx运算来实现,从技术实现的角度来讲,

WPF 有趣的动画效果

WPF 有趣的动画效果 这一次我要呈上一个简单的文章,关于给你的WPF apps加入美丽的光线动画,可是我对动画这东西可能有点入迷了. 实际上.我对动画如此的入迷,以至于我最后做了之前从未打算做的东西,就是使用一些很实用的.NET代码,渐变填充生成背景动画.让我先给你看一些终于效果吧. WPF和元素定位 然而.在我们開始之前.我们须要考虑一件事情.这件事让我也有点原地转圈的感觉. 似乎当你使用WPF创建不论什么闭环形状时,你不能设置它的X和Y坐标.好吧.至少你不能在一般的WPF窗口(像VS开箱即

WPF实现渐变淡入淡出的动画效果

原文:WPF实现渐变淡入淡出的动画效果 1.实现原理 1.1 利用UIElement.OpacityMask属性,用于改变对象区域的不透明度的画笔.可以使元素的特定区域透明或部分透明,从而实现比较新颖的效果. 1.2 OpacityMask属性接受任何画刷,可利用LinearGradientBrush线性渐变画刷,通过对渐变画刷中各颜色点加以动画处理即可. 2.渐变淡入实现 渐变淡入效果,可通过事件触发器触发Loaded事件实现,所以可以仅用前端XAML语言实现. 2.1 设置对象的Opacit

Android应用系列:仿MIUI的Toast动画效果实现(有图有源码)

前言 相信有些人用过MIUI,会发现小米的Toast跟Android传统的Toast特么是不一样的,他会从底部向上飞入,然后渐变消失.看起来效果是挺不错的,但是对于Android原生Toast是不支持自定义动画的.那这个效果到底是怎么实现的呢?下面就来告诉你.... 分析 如果园友看过我的另一篇博客<Android:剖析源码,随心所欲控制Toast显示>,就会知道其实原生Toast就是infate出一个View实例,然后将其加载到WindowManager上面来达到显示效果.我们很多人都知道W

一款简洁而强大的前端框架JQUery—动画效果及剪刀石头布小游戏

jQuery是什么? jQuery是一个快速.简洁的JavaScript框架,它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作.事件处理.动画设计和Ajax交互.它封装JavaScript常用的功能代码,提供一种简便的JavaScript设计模式,优化HTML文档操作.事件处理.动画设计和Ajax交互. JQuery效果-隐藏和显示 .show()让隐藏的元素显示.效果为:同时修改元素的高度.宽度.opacity属性 .hide()让显示

Android应用系列:仿MIUI的Toast动画效果实现

前言 相信有些人用过MIUI,会发现小米的Toast跟Android传统的Toast特么是不一样的,他会从底部向上飞入,然后渐变消失.看起来效果是挺不错的,但是对于Android原生Toast是不支持自定义动画的.那这个效果到底是怎么实现的呢?下面就来告诉你.... 分析 如果园友看过我的另一篇博客<Android:剖析源码,随心所欲控制Toast显示>,就会知道其实原生Toast就是infate出一个View实例,然后将其加载到WindowManager上面来达到显示效果.我们很多人都知道W