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

本文介绍如何使用Storyboard和EventTrigger为UI元素添加动画效果,包括窗口图标闪动及平滑过渡等,提升用户体验。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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

待续 … …

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值