【demo练习三】:图片水平滚动、点击按钮变更图片动画
要求:四张图片水平滚动,每隔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练习三】:图片水平滚动、点击按钮变更图片动画的更多相关文章
- [iOS] UICollectionView实现图片水平滚动
最新更新: 简单封装了一下代码,参考新文章:UICollectionView实现图片水平滚动 先简单看一下效果: 新博客:http://wossoneri.github.io 准备数据 首先先加入一些 ...
- JQuery实现点击按钮切换图片(附源码)--JQuery基础
JQuery实现切换图片相对比较简单,直接贴代码了哈,有注释噢!疑问请追加评论哈,不足之处还请大佬们指出! 1.案例代码: demo.html: <!DOCTYPE html><ht ...
- javascript总结36:DOM-点击按钮切换图片案例
<!DOCTYPE html> <html lang="zh-CN"> <head> <meta charset="UTF-8& ...
- 鼠标点击按钮控制图片移动或者键盘控制图片移动(解决问题:parseInt失效问题,用Number)
在测试用鼠标点击按钮,使图片左右上下移动: 效果如下: 代码如下: <!DOCTYPE html> <html lang="en"> <head> ...
- JAVA Eclipse如何设置点击按钮切换图片
右击图片文件夹,新建一个Android XML文件 设置文件的名称,注意这个新建的xml文件就是会被用作按钮的background属性的,所以名字不要太奇怪,设置Root Element为sele ...
- CSS3和js炫酷点击按钮3D翻转动画特效
简要教程 flipside是一款使用CSS3和js制作的炫酷点击按钮无缝过渡到确认面板的过渡动画特效.该点击按钮特效在按钮不同方向的边部点击时,产生的过渡动画特效是不一样的. 在线预览 源码下载 ...
- JS特效——图片水平滚动
具体源码如下: <!doctype html> <html lang="en"> <head> <meta http-equiv=&quo ...
- [iOS] WSHorizontalPickerView 图片水平滚动封装
之前这篇文章传送门本来是记录自己练手的demo的,后来很多人来问我要代码.今天就抽时间封装了一下,没有考虑太多情况,等我有空再去仔细考虑吧. 代码在:Github 用法很简单,创建对象,设置数据源,记 ...
- Android_ViewPager_实现多个图片水平滚动
1.示意图 2.实现分析 (1).xml配置 <!-- 配置container和pager的clipChildren=false, 并且指定margi ...
随机推荐
- 拖动层 拖动div 封装js 貌似不兼容FF,郁闷
原文发布时间为:2009-12-02 -- 来源于本人的百度文章 [由搬家工具导入] <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Tran ...
- 用email实现邮件模板
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- Day 29 process&thread_1
进程和线程 1 进程(process): 1.定义: 最小的执行单元.进程就是一个程序在一个数据集上的一次动态执行过程. 进程一般由程序.数据集.进程控制块三部分组成: 我们编写的程序用来描述进程要完 ...
- django 模型生成sql(多对多)
模型如下: class Publisher(models.Model): name = models.CharField(max_length=30) address = models.CharFie ...
- ubuntu16.04安装docker CE
如需开始在 Ubuntu 上使用 Docker CE,请确保您满足先决条件,然后再安装 Docker. 如需安装 Docker 企业版 (Docker EE),请转至获取适用于 Ubuntu 的 Do ...
- vue element-ui Tabs 标签页实现【更多】功能
element-ui Tabs本身是没有更多功能的,如果在外边添加一个更多按钮,又非常不好看, 而利用API中Tabs Attributes的before-leave勾子方法可以实现这个功能, 简单P ...
- (5)php数组
定义数组 $arr=array('篮球','自行车','海贼王'); 打印指定数组 echo $arr[0]; 打印全部数组 print_r($arr); 改变数组的值 $arr[0]='足球'; 赋 ...
- centos7安装hadoop2.6.1,详细教程
1.我搭建的是三台centos7的环境 首先准备三个centos7(文中出现的所有的链接都是我自己的) centos7下载地址(也可以上官网自行下载):https://pan.baidu.com/s/ ...
- Android-Handler消息机制实现原理
一.消息机制流程简介 在应用启动的时候,会执行程序的入口函数main(),main()里面会创建一个Looper对象,然后通过这个Looper对象开启一个死循环,这个循环的工作是,不断的从消息队列Me ...
- Java中获取当前时间并格式化
主要有两种方式,其中使用Date比较好控制,代码如下: //使用Calendar Calendar now = Calendar.getInstance(); System.out.println(& ...