如何对Visibility属性进行动画(XMAL /CS)

 

更新:2007 年 11 月

对指定 Duration 内的一组 KeyFrames 中的 Object 属性值进行动画处理。

命名空间:  System.Windows.Media.Animation
程序集:  PresentationCore (在 PresentationCore.dll 中)
用于 XAML 的 XMLNS: http://schemas.microsoft.com/winfx/xaml/presentation

 

 

参考:

http://social.msdn.microsoft.com/Forums/zh-HK/wpf/thread/7d856f82-d112-4a1c-a457-1aeb1abe861b

http://technet.microsoft.com/zh-cn/office/system.windows.uielement.visibility%28it-it,VS.95%29.aspx

 

XAML实现:

  1. <Border Height="100" Width="80" CornerRadius="11,11,11,11" Margin="5" BorderThickness="2" Background="Brown" IsEnabled="False" Name="Bord11">  
  2.     <Border.Triggers>  
  3.         <EventTrigger RoutedEvent="Border.Loaded" >  
  4.             <EventTrigger.Actions>  
  5.                 <BeginStoryboard>  
  6.                     <Storyboard>  
  7.                         <ObjectAnimationUsingKeyFrames  Storyboard.TargetProperty="Visibility" Duration="0:0:4">  
  8.                             <ObjectAnimationUsingKeyFrames.KeyFrames>  
  9.                                 <DiscreteObjectKeyFrame KeyTime="0:0:1" >  
  10.                                     <DiscreteObjectKeyFrame.Value>  
  11.                                         <Visibility>Visible</Visibility>  
  12.                                     </DiscreteObjectKeyFrame.Value>  
  13.                                 </DiscreteObjectKeyFrame>                                                  
  14.                                 <DiscreteObjectKeyFrame KeyTime="0:0:2" >  
  15.                                     <DiscreteObjectKeyFrame.Value>  
  16.                                         <Visibility>Hidden</Visibility>  
  17.                                     </DiscreteObjectKeyFrame.Value>  
  18.                                 </DiscreteObjectKeyFrame>                                                  
  19.                                 <DiscreteObjectKeyFrame KeyTime="0:0:3" >  
  20.                                     <DiscreteObjectKeyFrame.Value>  
  21.                                         <Visibility>Collapsed</Visibility>  
  22.                                     </DiscreteObjectKeyFrame.Value>  
  23.                                 </DiscreteObjectKeyFrame>  
  24.                                   
  25.                             </ObjectAnimationUsingKeyFrames.KeyFrames>  
  26.                         </ObjectAnimationUsingKeyFrames>  
  27.                     </Storyboard>  
  28.                 </BeginStoryboard>  
  29.             </EventTrigger.Actions>  
  30.         </EventTrigger>  
  31.     </Border.Triggers>  
  32.     <Label Height="39" Name="label1" Width="62">ABCDEFGH</Label>  
  33. </Border>  

<Border Height="100" Width="80" CornerRadius="11,11,11,11" Margin="5" BorderThickness="2" Background="Brown" IsEnabled="False" Name="Bord11"> <Border.Triggers> <EventTrigger RoutedEvent="Border.Loaded" > <EventTrigger.Actions> <BeginStoryboard> <Storyboard> <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Visibility" Duration="0:0:4"> <ObjectAnimationUsingKeyFrames.KeyFrames> <DiscreteObjectKeyFrame KeyTime="0:0:1" > <DiscreteObjectKeyFrame.Value> <Visibility>Visible</Visibility> </DiscreteObjectKeyFrame.Value> </DiscreteObjectKeyFrame> <DiscreteObjectKeyFrame KeyTime="0:0:2" > <DiscreteObjectKeyFrame.Value> <Visibility>Hidden</Visibility> </DiscreteObjectKeyFrame.Value> </DiscreteObjectKeyFrame> <DiscreteObjectKeyFrame KeyTime="0:0:3" > <DiscreteObjectKeyFrame.Value> <Visibility>Collapsed</Visibility> </DiscreteObjectKeyFrame.Value> </DiscreteObjectKeyFrame> </ObjectAnimationUsingKeyFrames.KeyFrames> </ObjectAnimationUsingKeyFrames> </Storyboard> </BeginStoryboard> </EventTrigger.Actions> </EventTrigger> </Border.Triggers> <Label Height="39" Name="label1" Width="62">ABCDEFGH</Label> </Border>

 

 

后台实现:

[c-sharp] view plain copy print ?
  1. ObjectAnimationUsingKeyFrames animate = new ObjectAnimationUsingKeyFrames();  
  2. animate.Duration = new TimeSpan(0,0,4);  
  3. animate.RepeatBehavior = RepeatBehavior.Forever;  
  4. DiscreteObjectKeyFrame kf1 = new DiscreteObjectKeyFrame(Visibility.Visible, new TimeSpan(0, 0, 1));  
  5. DiscreteObjectKeyFrame kf2 = new DiscreteObjectKeyFrame(Visibility.Hidden, new TimeSpan(0, 0, 2));  
  6. DiscreteObjectKeyFrame kf3 = new DiscreteObjectKeyFrame(Visibility.Collapsed, new TimeSpan(0, 0,3));  
  7. animate.KeyFrames.Add(kf1);  
  8. animate.KeyFrames.Add(kf2);  
  9. animate.KeyFrames.Add(kf3);  
  10. Bord11.BeginAnimation(Border.VisibilityProperty, animate);  

ObjectAnimationUsingKeyFrames animate = new ObjectAnimationUsingKeyFrames(); animate.Duration = new TimeSpan(0,0,4); animate.RepeatBehavior = RepeatBehavior.Forever; DiscreteObjectKeyFrame kf1 = new DiscreteObjectKeyFrame(Visibility.Visible, new TimeSpan(0, 0, 1)); DiscreteObjectKeyFrame kf2 = new DiscreteObjectKeyFrame(Visibility.Hidden, new TimeSpan(0, 0, 2)); DiscreteObjectKeyFrame kf3 = new DiscreteObjectKeyFrame(Visibility.Collapsed, new TimeSpan(0, 0,3)); animate.KeyFrames.Add(kf1); animate.KeyFrames.Add(kf2); animate.KeyFrames.Add(kf3); Bord11.BeginAnimation(Border.VisibilityProperty, animate);

 

转载于:https://www.cnblogs.com/changbaishan/p/3404586.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值