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

简介:

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

dis    ef1

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. 所有动画效果和事件都添加好了,可以看看效果:

test

待续 … …





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

相关文章
|
2月前
|
C#
WPF中动画教程(DoubleAnimation的基本使用)
WPF中动画教程(DoubleAnimation的基本使用)
56 0
|
13天前
|
算法 C# Windows
不可不知的WPF动画(Animation)
【9月更文挑战第19天】在 WPF(Windows Presentation Foundation)中,动画能为应用程序增添生动性和交互性。主要类型包括线性动画和关键帧动画,可针对依赖属性和自定义属性操作。触发方式有事件触发和自动触发,支持暂停、恢复及停止控制。合理使用这些功能并注意性能优化,可创建引人入胜的用户界面。
|
2月前
|
C# UED 开发者
WPF与性能优化:掌握这些核心技巧,让你的应用从卡顿到丝滑,彻底告别延迟,实现响应速度质的飞跃——从布局到动画全面剖析与实例演示
【8月更文挑战第31天】本文通过对比优化前后的方法,详细探讨了提升WPF应用响应速度的策略。文章首先分析了常见的性能瓶颈,如复杂的XAML布局、耗时的事件处理、不当的数据绑定及繁重的动画效果。接着,通过具体示例展示了如何简化XAML结构、使用后台线程处理事件、调整数据绑定设置以及利用DirectX优化动画,从而有效提升应用性能。通过这些优化措施,WPF应用将更加流畅,用户体验也将得到显著改善。
66 0
|
2月前
|
开发者 C# Windows
WPF与游戏开发:当桌面应用遇见游戏梦想——利用Windows Presentation Foundation打造属于你的2D游戏世界,从环境搭建到代码实践全面解析新兴开发路径
【8月更文挑战第31天】随着游戏开发技术的进步,WPF作为.NET Framework的一部分,凭借其图形渲染能力和灵活的UI设计,成为桌面游戏开发的新选择。本文通过技术综述和示例代码,介绍如何利用WPF进行游戏开发。首先确保安装最新版Visual Studio并创建WPF项目。接着,通过XAML设计游戏界面,并在C#中实现游戏逻辑,如玩家控制和障碍物碰撞检测。示例展示了创建基本2D游戏的过程,包括角色移动和碰撞处理。通过本文,WPF开发者可更好地理解并应用游戏开发技术,创造吸引人的桌面游戏。
94 0
|
2月前
|
C# UED 开发者
WPF动画大揭秘:掌握动画技巧,让你的界面动起来,告别枯燥与乏味!
【8月更文挑战第31天】在WPF应用开发中,动画能显著提升用户体验,使其更加生动有趣。本文将介绍WPF动画的基础知识和实现方法,包括平移、缩放、旋转等常见类型,并通过示例代码展示如何使用`DoubleAnimation`创建平移动画。此外,还将介绍动画触发器的使用,帮助开发者更好地控制动画效果,提升应用的吸引力。
62 0
|
2月前
|
存储 C# 数据格式
WPF动画教程(PointAnimationUsingPath的使用)
WPF动画教程(PointAnimationUsingPath的使用)
28 0
|
5月前
|
C#
WPF —— 动画缩放变换
`ScaleTransform`用于二维x-y坐标系中对象的缩放,可沿X或Y轴调整。在故事板中,通过RenderTransform.ScaleX和ScaleY属性控制缩放。示例代码展示了如何设置按钮的RenderTransformOrigin、Background等属性,并通过LayoutTransform应用ScaleTransform。当鼠标进入按钮时,EventTrigger启动DoubleAnimation实现X和Y轴的缩放动画。最后,展示了如何将动画集成到自定义按钮样式中。
123 0
|
C#
WPF技术之动画系列-上下运动
本例子展现动画小球上下循环运动
202 0
|
C# 前端开发
WPF编游戏系列 之二 图标效果
原文:WPF编游戏系列 之二 图标效果        本篇将要实现图标的两个效果:1. 显示图标标签,2. 图标模糊效果。在上一篇中提到Image没有HTML 的Title属性(在MSDN中也没找到类似的属性),所以本篇将自行制作一个标签,它的功能是当鼠标移动到图标上方时会显示该图标的Tag说明,并且该图标模糊显示,如下图对比所示。
762 0
|
前端开发 C# 算法
WPF路径动画(动态逆向动画)
原文:WPF路径动画(动态逆向动画) WPF 中的Path.Data 不再多介绍,M开始坐标点 C弧度坐标点 L 直线坐标点   个人写了关于Path.Data数据反向,意思就是把Path的数据逆转,但是图形是没有变化的 Xaml代码如下: ...
1963 0