要求:四张图片水平滚动,每隔5秒进行一次循环,点击按钮随机变更图片。

XAML前台代码:

 <Window x:Class="图片滚动.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Loaded="Window_Loaded"
Title="MainWindow"
Height="350"
Width="525">
<Viewbox>
<Canvas Width="1241" Height="768" Name="ImageCanvas" Background="SkyBlue">
<Canvas x:Name="canvas_photo" Width="1242" Height="200">
<Image x:Name="image1" Width="200" Height="200"
Canvas.Left="0" Source="F:\zcWPF入门\图片滚动\图片滚动\bin\Debug\Images\4.jpg">
</Image>
<Image x:Name="image3" Width="200" Height="200"
Canvas.Left="420" Source="F:\zcWPF入门\图片滚动\图片滚动\bin\Debug\Images\6.jpg" Canvas.Top="0">
</Image>
<Image x:Name="image4" Width="200" Height="200"
Canvas.Left="620" Source="F:\zcWPF入门\图片滚动\图片滚动\bin\Debug\Images\7.jpg" Canvas.Top="0">
</Image>
<Image x:Name="image2" Width="200" Height="200" Canvas.Left="218" Source="F:\zcWPF入门\图片滚动\图片滚动\bin\Debug\Images\5.jpg" Canvas.Top="0"></Image>
</Canvas>
<Button Canvas.Left="303" Canvas.Top="474" Content="Button" Height="77"
Name="button1" Width="184" Click="button1_Click" />
</Canvas>
</Viewbox>
</Window>

C#后台代码:

 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Data;
using System.Windows.Documents;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Imaging;
using System.Windows.Navigation;
using System.Windows.Shapes;
using System.Windows.Media.Animation;
using System.Windows.Threading;
using System.IO; namespace 图片滚动
{
/// <summary>
/// MainWindow.xaml 的交互逻辑
/// </summary>
public partial class MainWindow : Window
{
private System.Windows.Threading.DispatcherTimer dTimer = new DispatcherTimer();
List<string> listPath = new List<string>();
//设定图片集合
List<Image> listImg = new List<Image>(); double position = 0.0; public MainWindow()
{
InitializeComponent();
} private void Window_Loaded(object sender, RoutedEventArgs e)
{ listImg.Add(image1);
listImg.Add(image2);
listImg.Add(image3);
listImg.Add(image4); DoubleAnimation animation = new DoubleAnimation();
//animation.From = 0;
//animation.To = 250;
animation.RepeatBehavior = RepeatBehavior.Forever;
animation.Duration = TimeSpan.FromSeconds();
image1.BeginAnimation(Canvas.LeftProperty, animation);
//image1.BeginAnimation(Canvas.TopProperty, animation); loadInfo(); //dTimer.Tick += new EventHandler(dTimer_Tick);
//dTimer.Interval = new TimeSpan(0, 0, 5);
//dTimer.Start(); //每30毫秒触发一次定时器
dTimer.Tick += new EventHandler(dTimer_Tick);
dTimer.Interval = TimeSpan.FromMilliseconds();
dTimer.Start(); } //遍历加载指定文件下的文件
public void loadInfo()
{
string floderPath = System.Environment.CurrentDirectory + "\\Images\\";
DirectoryInfo TheFolder = new DirectoryInfo(floderPath);
foreach (FileInfo NextFile in TheFolder.GetFiles())
{
listPath.Add(NextFile.FullName);
}
} private string Window_Loaded(int index)
{
return System.Environment.CurrentDirectory + "\\Images\\" + index.ToString() + ".jpg";
} //int i;
private void dTimer_Tick(object sender, EventArgs e)
{
//if(Mouse)
foreach (var item in listImg)
{
position = Canvas.GetLeft(item);
//图片进行两个位置的移动
position = position + ;
//判断如果越界了
if (position > this.canvas_photo.Width + )
{
//则回到起点图片零起点
Canvas.SetLeft(item, );
}
else
{
//没有越界则继续移动
Canvas.SetLeft(item, position);
}
}
//for (i = 0; i < listImg.Count; i++)
//{
// position = Canvas.GetLeft(listImg[i]);
// position = position + 2;
// if (position > this.canvas_photo.Width + 200)
// {
// Canvas.SetLeft(listImg[i], 0);
// }
// else
// {
// Canvas.SetLeft(listImg[i], position);
// }
//}
} //int imageIndex = 0;
private void button1_Click(object sender, RoutedEventArgs e)
{
//随机事件
Random ran = new Random();
int RandKey = ran.Next(, ) % listPath.Count;
listImg[(new Random().Next(, )) % listImg.Count].Source = new BitmapImage(new Uri(listPath[RandKey]));
}
}
}

【demo练习三】:图片水平滚动、点击按钮变更图片动画的更多相关文章

  1. [iOS] UICollectionView实现图片水平滚动

    最新更新: 简单封装了一下代码,参考新文章:UICollectionView实现图片水平滚动 先简单看一下效果: 新博客:http://wossoneri.github.io 准备数据 首先先加入一些 ...

  2. JQuery实现点击按钮切换图片(附源码)--JQuery基础

    JQuery实现切换图片相对比较简单,直接贴代码了哈,有注释噢!疑问请追加评论哈,不足之处还请大佬们指出! 1.案例代码: demo.html: <!DOCTYPE html><ht ...

  3. javascript总结36:DOM-点击按钮切换图片案例

    <!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8& ...

  4. 鼠标点击按钮控制图片移动或者键盘控制图片移动(解决问题:parseInt失效问题,用Number)

    在测试用鼠标点击按钮,使图片左右上下移动: 效果如下: 代码如下: <!DOCTYPE html> <html lang="en"> <head> ...

  5. JAVA Eclipse如何设置点击按钮切换图片

    右击图片文件夹,新建一个Android XML文件   设置文件的名称,注意这个新建的xml文件就是会被用作按钮的background属性的,所以名字不要太奇怪,设置Root Element为sele ...

  6. CSS3和js炫酷点击按钮3D翻转动画特效

    简要教程 flipside是一款使用CSS3和js制作的炫酷点击按钮无缝过渡到确认面板的过渡动画特效.该点击按钮特效在按钮不同方向的边部点击时,产生的过渡动画特效是不一样的. 在线预览   源码下载 ...

  7. JS特效——图片水平滚动

    具体源码如下: <!doctype html> <html lang="en"> <head> <meta http-equiv=&quo ...

  8. [iOS] WSHorizontalPickerView 图片水平滚动封装

    之前这篇文章传送门本来是记录自己练手的demo的,后来很多人来问我要代码.今天就抽时间封装了一下,没有考虑太多情况,等我有空再去仔细考虑吧. 代码在:Github 用法很简单,创建对象,设置数据源,记 ...

  9. Android_ViewPager_实现多个图片水平滚动

    1.示意图                       2.实现分析 (1).xml配置 <!-- 配置container和pager的clipChildren=false, 并且指定margi ...

随机推荐

  1. shell文本过滤编程(一):grep和正则表达式【转】

    转自:http://blog.csdn.net/shallnet/article/details/38799739 版权声明:本文为博主原创文章,未经博主允许不得转载.如果您觉得文章对您有用,请点击文 ...

  2. linux内核情景分析之强制性调度

    从系统调用返回到用户空间是否调度,从ret_with_reschedule可看出,是否真正调度,取决于当前进程的pcb中的need_resched是否设置为1,那如何设置为1取决于以下几种情况: 时间 ...

  3. 4C 2018 倒数的字符序列

    输入L,N 将长度为L的小写字符串序列,比如L=3,序列为aaa,aab,aac,...aba,...zzz,求倒数第N个字符串序列是什么.输入3 7421 得到pat 第一感觉是A,B,C...,Z ...

  4. Codeforces Round #467 (Div. 2) B. Vile Grasshoppers[求去掉2-y中所有2-p的数的倍数后剩下的最大值]

    B. Vile Grasshoppers time limit per test 1 second memory limit per test 256 megabytes input standard ...

  5. 正确地使用GIT FORK

    摘自github官方网站,稍后我将抽空翻译. Fork a repo https://help.github.com/articles/fork-a-repo/ Syncing a fork http ...

  6. (持续集成)win7上部署Jenkins+MSBuild+Svn+SonarQube+SonarQube Scanner for MSBuild (一)

    一.Jenkins介绍 jenkins是一个广泛用于持续构建的可视化web工具,持续构建说得更直白点,就是各种项目的”自动化”编译.打包.分发部署.jenkins可以很好的支持各种语言(比如:java ...

  7. ArcGIS 开发时,解决__类型“XX”同时存在于“”和“”中__的错误

    错误提示:类型“ESRI.ArcGIS.ADF.BaseClasses.BaseCommand”同时存在于“e:\Program Files\ArcGIS\DeveloperKit10.2\DotNe ...

  8. nginx 配置静态目录 访问bootstrap

    location /static/ { alias /Users/wangziqiang/djangoprojects/bpmTest/static/; } 注意  /static/   中 /的完整 ...

  9. Jinja2文档学习

    这些文档需要精度一遍 1.http://jinja.pocoo.org/docs/dev/ 2.http://jinja.pocoo.org/docs/dev/templates/# 3.https: ...

  10. flask的安全注意事项,如何防范XSS、CSRF、JSON安全

    参考官方文档:http://docs.jinkan.org/docs/flask/security.html 1.xss Flask 配置 Jinja2 自动转义所有值,除非显式地指明不转义.这就排除 ...