要求:四张图片水平滚动,每隔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. eclipse在linux環境下安裝注意事项

    文件如果安装在非home文件夹下必须为eclipse授权 sudo chmod -R 777 /usr/tools/eclipse

  2. linux私房菜-读书笔记

    第零章:计算机概论 计算机:接受用户输入指令和数据,经过中央处理器的数据和逻辑单元运算处理器处理后,以产生或存储成有用的信息. 计算机硬件的五大单元:输入单元.输出单元.CPU内部控制单元.算术逻辑单 ...

  3. C#图解教程学习笔记——方法

    一.字段和本地变量.本地常量字段:隶属于类的变量,即类的成员变量.本地变量:于保存本地的或临时的计算数据,即局部变量.本地常量:必须声明在块内部,声明时必须初始化,声明后不能改变.实例字段与本地变量区 ...

  4. pylint & jenkins

    利用pylint 检测 python源码. Pylint 提供了简单的方式来分析 Python 代码,其高可配置性很容易使一个部门的人员使用统一的代码风格. Pylint 是什么 Pylint 是一个 ...

  5. springBoot 数组增加工具类包

    1.pom中加入依赖 <!--数组工具类 start--> <dependency> <groupId>org.apache.commons</groupId ...

  6. C++ 找不到方法标识符

    其实原因是这个CPP并没有面向对象的结构. 所以进行编译时是“顺序编译”的,而main函数的定义又在A的定义之前.自然找不到标识符了.

  7. autofac 用法总结

    autofac官网: http://autofaccn.readthedocs.io/en/latest/getting-started/index.html autofac作为一个热门ioc框架,还 ...

  8. 机器学习(4):数据分析的工具-pandas的使用

    前面几节说一些沉闷的概念,你若看了估计已经心生厌倦,我也是.所以,找到了一个理由来说一个有兴趣的话题,就是数据分析.是什么理由呢?就是,机器学习的处理过程中,数据分析是经常出现的操作.就算机器对大量样 ...

  9. Oracle数据库搭建

  10. log4j 2使用properties文件进行配置

    网上不少文章给的都是用xml进行配置,也会提到无法使用properties文件对log4j进行配置,但那应该只是在他们写文章的时候才是如此,最新的2.8.2版本经过我试验后是可以做到的当然该文件最好放 ...