要求:四张图片水平滚动,每隔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. DataGrid关键字变色

    原文发布时间为:2009-05-01 -- 来源于本人的百度文章 [由搬家工具导入] private   void   DataGrid1_ItemDataBound(object   sender, ...

  2. About chrysanthemum and matrimony vine

    红枣.枸杞茶:可经常喝. 菊花茶.枸杞茶:适当,一般建议喝3天停3天会比较妥当. 湿热重的人不宜食红枣,可只泡枸杞.菊花或将红枣改为红茶,也能起到明目.养肝.益血.抗疲劳的功效.红枣要去核,才不会太燥 ...

  3. saltstack 模块学习之 state

     入口文件top.sls 三要素环境:通过file-roots指定目标主机:可以使用通配符*配置文件路径:路径分割符为. 比如a.mysql 表示在环境指定的路径下有个a目录,a目录下有个mysql. ...

  4. 《30天学习30种新技术》-Day 15:Meteor —— 从零开始创建一个 Web 应用

    目录:https://segmentfault.com/a/1190000000349384 原文: https://segmentfault.com/a/1190000000361440 到目前为止 ...

  5. 浏览器中“JavaScript解析器”工作原理

    浏览器在读取HTML文件的时候,只有当遇到<script>标签的时候,才会唤醒所谓的“JavaScript解析器”开始工作. JavaScript解析器工作步骤: 1.“找一些东西”: v ...

  6. validate插件使用

    validate插件使用 官网:http://jqueryvalidation.org/ 项目实操 引入文件 add.html调用(注意顺序问题) 为form表单定义一个ID,以方便获取该元素 添加验 ...

  7. 单堆石子的Nim Game

    两个人轮流捡石子,只有一堆石子,石子数为n.每个人每次至少捡一个石子,至多捡m个.取走最后一个石子的人胜利,若我方先手,求能否胜利. 若n % (m + 1)为0,则必输,否则必赢.

  8. 聊聊、Zookeeper 数据结构和操作命令

    Zookeeper 的视图结构跟标准的 Unix 文件系统很像,都有一个根节点 / .在根节点下面就是一个个的子节点,我们称为 ZNode.ZNode 是 Zookeeper 中最小数据单位,在 ZN ...

  9. 清理Xcode的技巧和方法

    移除对旧设备的支持 影响:可重新生成:再连接旧设备调试时,会重新自动生成.我移除了4.3.2, 5.0, 5.1等版本的设备支持. 路径:~/Library/Developer/Xcode/iOS D ...

  10. navicat链接lunix平台上的数据库

    xsell 4.navicat软件 想在链接数据库的得常规设置里设置: 链接名称.主机名(链接lunix平台后才干ping 通的ip地址) port.username.password 然后选择ssh ...