找回密码
 立即注册

QQ登录

只需一步,快速开始

ZenosZeng 讲师达人认证 悬赏达人认证

超级版主

299

主题

7874

帖子

1万

积分

超级版主

Rank: 8Rank: 8

积分
13131

活字格认证圣诞拼拼乐微信认证勋章讲师达人元老葡萄悬赏达人

ZenosZeng 讲师达人认证 悬赏达人认证
超级版主   /  发表于:2012-8-1 09:42  /   查看:6051  /  回复:0
动画显示效果是Silverlight/WPF平台中一个非常重要的功能。下面我们就来看一看如何为C1Menu for Silverlight添加动画显示效果。
为了添加动画显示效果,我们需要修改C1Menu的默认模板,并修改Opened的VisualState设置。
  • 添加第一层菜单项动画效果FirstLevelMenuStyle

  1.     <VisualState x:Name="Opened">                                       
  2.         <Storyboard>
  3.             <ObjectAnimationUsingKeyFrames BeginTime="00:00:00" Duration="00:00:00.00100000" Storyboard.TargetName="OpenedElement" Storyboard.TargetProperty="(UIElement.Visibility)">
  4.                 <DiscreteObjectKeyFrame KeyTime="00:00:00">
  5.                     <DiscreteObjectKeyFrame.Value>
  6.                         <Visibility>Visible</Visibility>
  7.                     </DiscreteObjectKeyFrame.Value>
  8.                 </DiscreteObjectKeyFrame>
  9.             </ObjectAnimationUsingKeyFrames>
  10.             <!—可以修改Duration的值来加快/减慢动画显示速度-->
  11.             <DoubleAnimation From="0" To="1" BeginTime="00:00:00" Duration="00:00:00.30000" Storyboard.TargetName="AnimationContent" Storyboard.TargetProperty="(UIElement.RenderTransform).(ScaleTransform.ScaleY)">
  12.             </DoubleAnimation>
  13.         </Storyboard>
  14.     </VisualState>
复制代码

  • 非第一层菜单项的动画效果

  1.     <VisualState x:Name="Opened">
  2.         <Storyboard>
  3.             <ObjectAnimationUsingKeyFrames BeginTime="00:00:00" Duration="00:00:00.0010000" Storyboard.TargetName="OpenedElement" Storyboard.TargetProperty="(UIElement.Visibility)">
  4.                 <DiscreteObjectKeyFrame KeyTime="00:00:00">
  5.                     <DiscreteObjectKeyFrame.Value>
  6.                         <Visibility>Visible</Visibility>
  7.                     </DiscreteObjectKeyFrame.Value>
  8.                 </DiscreteObjectKeyFrame>
  9.             </ObjectAnimationUsingKeyFrames>                                            
  10.         <!—可以修改Duration的值来加快/减慢动画显示速度-->
  11.             <DoubleAnimation From="0" To="1" BeginTime="00:00:00" Duration="00:00:00.300000" Storyboard.TargetName="_contentControl" Storyboard.TargetProperty="(UIElement.RenderTransform).(ScaleTransform.ScaleX)">
  12.             </DoubleAnimation>
  13.         </Storyboard>
  14.     </VisualState>
复制代码


最终效果如下:


源码下载:VS2010 + Silverlight5.0 + ComponentOne Studio for Silverlight 2012V2

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?立即注册

x

0 个回复

您需要登录后才可以回帖 登录 | 立即注册
返回顶部