更新: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. </ObjectAnimationUsingKeyFrames.KeyFrames>
  25. </ObjectAnimationUsingKeyFrames>
  26. </Storyboard>
  27. </BeginStoryboard>
  28. </EventTrigger.Actions>
  29. </EventTrigger>
  30. </Border.Triggers>
  31. <Label Height="39" Name="label1" Width="62">ABCDEFGH</Label>
  32. </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>

后台实现:

  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);

分享到:

如何对Visibility属性进行动画(XMAL /CS)的更多相关文章

  1. 【UWP】对 Thickness 类型属性进行动画

    好几个月没写 blog 了,一个是在忙新版的碧影壁纸,另一方面是等(观望)周年更新的 api(不过现在还是比较失望,仍然没法支持矩形以外的 Clip).闲话少说,进入主题. 在 UWP 中,出于性能考 ...

  2. Android笔记——Android中visibility属性VISIBLE、INVISIBLE、GONE的区别

    在Android开发中,大部分控件都有visibility这个属性,其属性有3个分别为"visible "."invisible"."gone&quo ...

  3. Android,visibility属性

    Android,visibility属性 1) 可见(visible)XML文件:android:visibility="visible"Java代码:view.setVisibi ...

  4. 【转】Android中visibility属性VISIBLE、INVISIBLE、GONE的区别

    原文网址:http://blog.csdn.net/chindroid/article/details/8000713 在Android开发中,大部分控件都有visibility这个属性,其属性有3个 ...

  5. [CSS]visibility 属性

    定义和用法 visibility 属性规定元素是否可见. 提示:即使不可见的元素也会占据页面上的空间.请使用 "display" 属性来创建不占据页面空间的不可见元素. 说明 这个 ...

  6. 自定义 Layer 属性的动画

    默认情况下,CALayer 及其子类的绝大部分标准属性都可以执行动画,无论是添加一个 CAAnimation 到 Layer(显式动画),亦或是为属性指定一个动作然后修改它(隐式动画).   但有时候 ...

  7. Silverlight代码编写对控件的PlaneProjection.RotationY属性控制动画

    Canvas c; void btnDraw_Click(object sender, RoutedEventArgs e) { Storyboard story = new Storyboard() ...

  8. 视图属性+对象动画组件ViewPropertyObjectAnimator

    视图属性+对象动画组件ViewPropertyObjectAnimator   ViewPropertyObjectAnmator组件是一款对象动画(ObjectAnimator)封装组件.它将视图属 ...

  9. CSS属性组-动画、转换、渐变

    一.动画 animation动画属性是一个简写属性,用于设置六个动画属性 aninmation-name动画名称,被调用 animation-duration完成动画需要的持续时间 animation ...

随机推荐

  1. 20154312 曾林 EXP6 信息搜集与漏洞扫描

    目录 1.实验后回答问题 2.实验总结与体会 3.实践过程记录 --3.1.信息收集 ----3.1.1.whois查询 ----3.1.2.nslookup,dig查询 ----3.1.3.trac ...

  2. python selenium第一个WebDriver脚本

    #coding=utf-8from selenium import webdriverimport timeimport osos.environ["webdriver.firefox.dr ...

  3. 笔试题二(java面向对象、多线程、集合)

    1.final关键字的特点 final修饰变量时,在堆内存中的地址是不变的,但对象的内容是可变的.//思考,找例子 2.静态变量的特点 实例变量是用对象引用,要先实例化对象,而静态变量属于类,只要类加 ...

  4. Linux(RedHat) 开机时修改root密码

    全程上图 开机的时候看到以下的界面, 按e进入编辑界面 然后就看到这个 再按一下e, 选择第二项 选中第二项后按e进入编辑界面, 输入single(记得有空格),然后回车, single就是启动单用户 ...

  5. 20145336张子扬 《网络对抗技术》 PC平台逆向破解

    #20145336张子扬 <网络对抗技术> PC平台逆向破解 ##Shellcode注入 **基础知识** Shellcode实际是一段代码,但却作为数据发送给受攻击服务器,将代码存储到对 ...

  6. bzoj 3505 数三角形 - 组合数学

    给定一个nxm的网格,请计算三点都在格点上的三角形共有多少个.下图为4x4的网格上的一个三角形. 注意三角形的三点不能共线. Input 输入一行,包含两个空格分隔的正整数m和n. Output 输出 ...

  7. 在Android studio中到入Eclipse

    由于无法在AS中直接导入Eclipse的原始包,所以需要先把Eclipse的包导出成Gradle包,这个Gradle包可以别两个环境识别. 1.在Eclipse中导出Gradle包.选择需要从Ecli ...

  8. Python3基础 os listdir 列举指定的所有文件及文件夹的名字

             Python : 3.7.0          OS : Ubuntu 18.04.1 LTS         IDE : PyCharm 2018.2.4       Conda ...

  9. 高通平台启动log概述(PBL log、sbl1 log、kernel log)【转】

    本文转自:https://blog.csdn.net/RadianceBlau/article/details/78416776?utm_source=blogxgwz9 高通平台启动log概述(PB ...

  10. 骗访问量的机房人物列传by xMinh

    作者:$xMinh$ 人物列传·Refun(Aufun,虚凡,人赢) 机房最人赢的人赢,上过表白墙的男人 在宿舍公然开设情感讲座和人赢培训班,教学成果显著,他的徒弟要么gay了要么凉了 认识的人极其广 ...