Silverlight之我见——制作星星闪烁动画
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Net;
- using System.Windows;
- using System.Windows.Controls;
- using System.Windows.Documents;
- using System.Windows.Input;
- using System.Windows.Media;
- using System.Windows.Media.Animation;
- using System.Windows.Shapes;
- namespace RandEllipseSample
- {
- public partial class MainPage : UserControl
- {
- int shapesCount = 500; //图形数组的容量
- //随机大小的上限
- int theMaxW = 1300;
- int theMaxH = 720;
- Random rand = null;
- Storyboard story = null;
- Ellipse[] myShapes = null;
- public MainPage()
- {
- InitializeComponent();
- rand = new Random();
- story = new Storyboard();
- story.Completed += new EventHandler(story_Completed);
- InitShapes();
- InitAnimation();
- //加载完成后马上播放动画
- this.Loaded += new RoutedEventHandler(MainPage_Loaded);
- }
- void MainPage_Loaded(object sender, RoutedEventArgs e)
- {
- story.Begin();
- }
- void story_Completed(object sender, EventArgs e)
- {
- for (int x = 0; x < shapesCount; x++)
- {
- myShapes[x].Margin = new Thickness(Convert.ToDouble(rand.Next(0, theMaxW)), Convert.ToDouble(rand.Next(0, theMaxH)), 0, 0);
- }
- InitAnimation();
- }
- /// <summary>
- /// 初始化形状数组
- /// </summary>
- private void InitShapes()
- {
- myShapes = new Ellipse[shapesCount];
- //实例化所有成员
- for (int n = 0; n < shapesCount; n++)
- {
- myShapes[n] = new Ellipse();
- myShapes[n].Fill = new SolidColorBrush(Colors.Transparent);
- myShapes[n].StrokeThickness = 2d;
- //笔触为线性渐变
- LinearGradientBrush gBrush = new LinearGradientBrush();
- gBrush.StartPoint = new Point(0, 0);
- gBrush.EndPoint = new Point(1, 1);
- gBrush.GradientStops.Add(new GradientStop()
- {
- Color = Colors.Yellow,
- Offset = 0
- });
- gBrush.GradientStops.Add(new GradientStop()
- {
- Color = Colors.Red,
- Offset = 0.25
- });
- gBrush.GradientStops.Add(new GradientStop()
- {
- Color = Colors.White,
- Offset = 0.5
- });
- gBrush.GradientStops.Add(new GradientStop()
- {
- Color = Colors.Blue,
- Offset = 0.75
- });
- myShapes[n].Stroke = gBrush;
- //位置
- myShapes[n].Margin = new Thickness(Convert.ToDouble(rand.Next(0,theMaxW)), Convert.ToDouble(rand.Next(0,theMaxH)), 0, 0);
- //大小
- myShapes[n].Width = 10;
- myShapes[n].Height = 10;
- myShapes[n].HorizontalAlignment = HorizontalAlignment.Left;
- myShapes[n].VerticalAlignment = VerticalAlignment.Top;
- //加入可视化树
- this.LayoutRoot.Children.Add(myShapes[n]);
- }
- }
- /// <summary>
- /// 初始化动画
- /// </summary>
- private void InitAnimation()
- {
- story.Children.Clear();
- for (int i = 0; i < shapesCount; i++)
- {
- int mSecond = rand.Next(0, 5);
- //透明度
- DoubleAnimation opacityAnimate = new DoubleAnimation();
- opacityAnimate.From = 1.0;
- opacityAnimate.To = 0.0;
- Storyboard.SetTarget(opacityAnimate, myShapes[i]);
- Storyboard.SetTargetProperty(opacityAnimate,
- new PropertyPath("Opacity"));
- opacityAnimate.Duration = new Duration(TimeSpan.FromSeconds(mSecond));
- opacityAnimate.RepeatBehavior = RepeatBehavior.Forever;
- //将时间线添加到情节摘要
- story.Children.Add(opacityAnimate);
- }
- }
- }
- }

Silverlight之我见——制作星星闪烁动画的更多相关文章
- JS框架_(JQuery.js)夜晚天空满天星星闪烁动画
百度云盘 传送门 密码:xftr 满天星星闪烁动画效果: (可用星空动画来作为页面背景,白色文字改为文章或者其他的O(∩_∩)O) <!doctype html> <html> ...
- 原生js实现星星闪烁的效果
星星闪烁的原理其实很简单: html代码: <body style="background:#000"> <div id="stars_box" ...
- 推荐几款制作网页滚动动画的 JavaScript 库
这里集合了几款很棒的制作网页滚动动画的 JavaScript 库和插件.它们中,有的可以帮助你在页面滚动的时候添加动感的元素动画,有的则是实现目前非常流行的全屏页面切换动画.相信借助这些插件,你也可以 ...
- 理论制作 Windows 开机动画
第一次接触 Windows 开机动画是 2012 年,那时候魔方的版本号还是 3.12,魔方里面有个很酷炫狂霸拽的功能就是替换 Windows 7 的开机动画.一开始我是在IT之家论坛里下载开机动画, ...
- 怎么实现类似星星闪烁的效果(box-shadow)
有时候设计希望我们能够在页面实现类似星星闪烁的效果,如图: 我的解决办法是用box-shadow: html <div class="star04 active-blink" ...
- 【Unity 3D】使用 2DToolkit 插件 制作2D精灵动画
话说博客传图也太麻烦了吧,一个一个文件一个一个传....为什么不能直接粘贴了,自动上传呢... 刚直接粘贴了,结果一张图没有,又重新截一次图,在传了一次...真是太**了 好了,吐槽完了,开始博客吧 ...
- StarRatingBar星星切换动画《IT蓝豹》
StarRatingBar星星切换动画 StarRatingBar星星切换动画,很久没有学习一下这个RatingBar了,今天来看看这个RatingBar的动画切换效果,本例子主要是RatingBar ...
- 高逼格UILabel的闪烁动画效果
高逼格UILabel的闪烁动画效果 最终效果图如下: 源码: YXLabel.h 与 YXLabel.m // // YXLabel.h // // Created by YouXianMing o ...
- Canvas制作的下雨动画
简介 在codepen上看到一个Canvas做的下雨效果动画,感觉蛮有意思的.就研究了下,这里来分享下,实现技巧.效果可以见下面的链接. 霓虹雨: http://codepen.io/natewile ...
随机推荐
- 你不知道的JavaScript--Item33 跨域总结与解决的方法
一.神马是跨域(Cross Domain) 说白点就是post.get的url不是你当前的站点,域名不同.比如在*aaa.com/a.html*里面,表单的提交action是bbb.com/b.htm ...
- UNIX环境高级编程之第3章:文件I/O
3.1 引言 文件I/O函数:打开文件,读文件,写文件 经常使用到五个函数:open, read, write, lseek, close. 本章描写叙述的函数都是:不带缓冲的I/O(unbuffer ...
- tflearn中计算混淆矩阵方法——需要经过一步转换
def do_rnn_wordbag(trainX, testX, trainY, testY): y_test=testY #trainX = pad_sequences(trainX, maxle ...
- bzoj 3029 守卫者的挑战 —— 概率DP
题目:https://www.lydsy.com/JudgeOnline/problem.php?id=3029 设 f[i][j][k] 表示第 i 次挑战,已经成功 j 次,剩余容量为 k 的概率 ...
- Spark入门之DataFrame/DataSet
目录 Part I. Gentle Overview of Big Data and Spark Overview 1.基本架构 2.基本概念 3.例子(可跳过) Spark工具箱 1.Dataset ...
- Newtonsoft.Json 序列化日期问题解决
上代码 其中的使用方法和UserInfo实体对象就不贴代码了. /// <summary> /// 把对象转成json字符串 /// </summary> /// <pa ...
- Java多线程技术-Volatile关键字解析
分析volatile关键字可以从这三个方面分析,什么是程序的原子性,什么是程序的可见性,什么是程序的有序性 什么是程序的原子性 以下语句那些是原子操作? public class ThreadCoun ...
- LeetCode刷题 1. Two Sum 两数之和 详解 C++语言实现 java语言实现
1. Two Sum 两数之和 Given an array of integers, return indices of the two numbers such that they add up ...
- idea UML快捷键
- 强迫症!一行代码拿到url特定query的值
简单的说一下背景,看到小伙伴给我发的项目中有一段获取当前url特定query值的代码,本着能写1行代码就不写5行代码的原则,我把这个获取方法给改了一下 之前的代码如下: const queryArr ...