原文:WPF编程,通过DoubleAnimation控制图片的透明度,将重叠的图片依次显示。

版权声明:我不生产代码,我只是代码的搬运工。 https://blog.csdn.net/qq_43307934/article/details/87369585

3张图片按照1-3的顺序叠放在面板上,然后依次将图片的透明度由1变化到0。当第1张图片的透明度变为0时显示第2张图片,这样形成了一幅连续的动画。

 

 1、建立窗口在Grid 面板中放置图片

    <Grid>
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition Height="auto"/>
</Grid.RowDefinitions>
<Grid Name="grid"> </Grid>
<Grid Grid.Row="1">
<Grid.ColumnDefinitions>
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
<ColumnDefinition />
</Grid.ColumnDefinitions>
<Button Grid.Column="0"
Margin="5"
Content="开始"
Click="Buttonstart" />
<Button Grid.Column="1"
Margin="5"
Content="暂停"
Click="ButtonPause" />
<Button Grid.Column="2"
Margin="5"
Content="继续"
Click="ButtonResume"/>
<Button Grid.Column="3"
Margin="5"
Content="停止"
Click="ButtonStop" />
</Grid> </Grid>

2、后台

public partial class Window3 : Window
{
Storyboard story;
private List<Image> imagelist; public Window3()
{
InitializeComponent();
} private void Window_Loaded(object sender, RoutedEventArgs e)
{
story = new Storyboard();
NameScope.SetNameScope(this, new NameScope());
imagelist = new List<Image>(); for (int i = 0; i < 3; i++)
{
string name = "img" + (3 - i);
string strUri;
strUri = string.Format("pack://application:,,,/Photo/{0}.jpg", (3 - i));
Image img = new Image();
img.Name = name;
BitmapImage myBitmapImage = new BitmapImage();
myBitmapImage.BeginInit();
myBitmapImage.UriSource = new Uri(strUri);
myBitmapImage.EndInit();
img.Source = myBitmapImage;
this.RegisterName(name, img);
grid.Children.Add(img);
Grid.SetRow(img, 0);
Grid.SetColumn(img, 0);
imagelist.Add(img);
}
imagelist.Reverse();
for (int i = 0; i < imagelist.Count - 1; i++)
{
DoubleAnimation anim = new DoubleAnimation();
anim.BeginTime = TimeSpan.FromSeconds(0.9 * i);
anim.From = 1;
anim.To = 0;
// anim.AutoReverse = true;
anim.RepeatBehavior = RepeatBehavior.Forever;
anim.Duration = TimeSpan.FromSeconds(0.5);
Storyboard.SetTargetName(anim, imagelist[i].Name);
Storyboard.SetTargetProperty(anim, new PropertyPath(Image.OpacityProperty));
story.Children.Add(anim);
} } private void Buttonstart(object sender, RoutedEventArgs e)
{
story.Begin(this, true);
} private void ButtonPause(object sender, RoutedEventArgs e)
{
story.Pause(this);
} private void ButtonResume(object sender, RoutedEventArgs e)
{
story.Resume(this);
} private void ButtonStop(object sender, RoutedEventArgs e)
{
story.Stop(this);
}
}

 

WPF编程,通过DoubleAnimation控制图片的透明度,将重叠的图片依次显示。的更多相关文章

  1. javacpp-opencv图像处理之2:实时视频添加图片水印,实现不同大小图片叠加,图像透明度控制,文字和图片双水印

    欢迎大家积极开心的加入讨论群 群号:371249677 (点击这里进群) javaCV图像处理系列: javaCV图像处理之1:实时视频添加文字水印并截取视频图像保存成图片,实现文字水印的字体.位置. ...

  2. WPF编程-WPF体系结构

    WPF简介 Windows Presentation Foundation(WPF)是微软新一代图形系统,运行在.NET Framework 3.0架构下,为用户界面.2D/3D 图形.文档和媒体提供 ...

  3. WPF编程,通过Double Animation动态旋转控件的一种方法。

    原文:WPF编程,通过Double Animation动态旋转控件的一种方法. 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.net/qq_43307934/art ...

  4. WPF编程,通过Double Animation动态更改控件属性的一种方法。

    原文:WPF编程,通过Double Animation动态更改控件属性的一种方法. 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.net/qq_43307934/a ...

  5. WPF编程,通过Double Animation同时动态缩放和旋转控件的一种方法。

    原文:WPF编程,通过Double Animation同时动态缩放和旋转控件的一种方法. 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.net/qq_4330793 ...

  6. WPF编程,通过Double Animation动态缩放控件的一种方法。

    原文:WPF编程,通过Double Animation动态缩放控件的一种方法. 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.net/qq_43307934/art ...

  7. WPF编程,窗体最大化、最小化、关闭按钮功能的禁用

    原文:WPF编程,窗体最大化.最小化.关闭按钮功能的禁用 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.net/qq_43307934/article/detail ...

  8. WPF编程,通过Path类型制作沿路径运动的动画一种方法。

    原文:WPF编程,通过Path类型制作沿路径运动的动画一种方法. 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.net/qq_43307934/article/de ...

  9. WPF编程,指定窗口图标、窗口标题,使得在运行状态下任务栏显示窗口图标的一种方法。

    原文:WPF编程,指定窗口图标.窗口标题,使得在运行状态下任务栏显示窗口图标的一种方法. 版权声明:我不生产代码,我只是代码的搬运工. https://blog.csdn.net/qq_4330793 ...

随机推荐

  1. Nginx的防爬虫优化

    我们可以根据客户端的 user-agents 首部字段来阻止指定的爬虫爬取我们的网站: 虚拟主机配置如下:(红色标记为添加或者修改内容) [root@Nginx www_date]# cat bria ...

  2. AndroidGradle最实用的指南

    AndroidStudio目前已经成为Android开发人员的主流工具,而Gradle的原理,配置,使用仍然是很多android开发人员感到困惑的地方.网上虽然有很多相关文档,但是要么是只会用但是不知 ...

  3. 机器学习实战(Machine Learning in Action)学习笔记————06.k-均值聚类算法(kMeans)学习笔记

    机器学习实战(Machine Learning in Action)学习笔记————06.k-均值聚类算法(kMeans)学习笔记 关键字:k-均值.kMeans.聚类.非监督学习作者:米仓山下时间: ...

  4. npm install "Unexpected end of JSON input while parsing near"问题

    问题 最近配了台新电脑,开始装Node环境,去官网下载了最新的Node安装包.安装也没有问题,但是在使用npm install这个命令的时候,就会出现Unexpected end of JSON in ...

  5. LeetCode题解之 Binary Tree Preorder Traversal

    1.题目描述 2.问题分析 利用递归. 3.代码 vector<int> preorderTraversal(TreeNode* root) { vector<int> v; ...

  6. Linux磁盘及分区之wwid和uuid

    背景描述,在Linux系统中,如果添加了新的SCSI磁盘或者映射SAN存储LUN操作,重启操作系统之后会出现磁盘标识符(sd*)错乱的情况. 例如之前添加的SAN存储LUN的磁盘标识符为/dev/sd ...

  7. VS创建工程出错解决方案

    今天在用VS2010创建工程时出现错误:“ 此模板尝试加载组件程序集 “NuGet.VisualStudio.Interop, Version=1.0.0.0, Culture=neutral, Pu ...

  8. php框架安装

    安装yii框架 跳转到composer.phar目录 cd C:\ProgramData\ComposerSetup\bin 安装yii2高级版 php composer.phar create-pr ...

  9. Nginx反向代理理解误区之proxy_cookie_domain

    基本内容 Nginx做反向代理的时候,我们一般习惯添加proxy_cookie_domain配置,来做cookie的域名转换,比如 ... location /api { proxy_pass htt ...

  10. Oracle 12C Data Gurad RAC TO RAC

    Oracle 12C RAC TO RAC Data Guard on RHEL7 0.环境说明   primary db physical standby 操作系统 rhel7 x86_64 rhe ...