【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 ...
随机推荐
- 《Linux命令行与shell脚本编程大全 第3版》Linux命令行---44
以下为阅读<Linux命令行与shell脚本编程大全 第3版>的读书笔记,为了方便记录,特地与书的内容保持同步,特意做成一节一次随笔,特记录如下:
- Ubuntu中vim添加lua支持
系统:Ubuntu 15.10/16.04 因为Ubuntu15.10系统自带vim不支持lua,所以得自己编译安装. $ sudo apt install vim-nox vim-nox可以让vim ...
- JS-JavaScript String 对象-string对象方法2: indexOf()、lastIndexOf()、charAt()
1.indexOf():可返回某个指定的字符串值在字符串中首次出现的位置. 1).语法:string.indexOf(searchvalue,start): searchvalue:必需.规定 ...
- (6)python tkinter-容器、子窗体
Frame f = tkinter.Frame(width=380, height=270, bg='white').pack() LabelFrame f = tkinter.LabelFrame( ...
- 任意选若干个不相邻的数得到的和最大【dp】
非相邻数最大和 ///*任意选若干个不相邻的数得到的和最大*/ #include<cstdio> #include<cstring> #include<queue> ...
- The End Of 2016
上半年,在意识模糊的各种考试中度过……每天都在想高考的那几天会是什么样…… 果然,高考期间身体还是出了状况.数学滚粗之后都有点不想考了==但还是坚持到了最后一门. 怎么说呢:高中三年过得不是很开心. ...
- x86服务器中网络性能分析与调优 转
x86服务器中网络性能分析与调优 2017-04-05 巨枫 英特尔精英汇 [OpenStack 易经]是 EasyStack 官微在2017年新推出的技术品牌,将原创技术干货分享给您,本期我们讨论 ...
- 【spring boot hibernate】hibernate命名策略spring.jpa.hibernate.naming-strategy不起作用
对于 spring.jpa.hibernate.naming-strategy = org.hibernate.cfg.ImprovedNamingStrategy hibernate命名策略设置之后 ...
- Java的日志模块
目前主流的是是logback和log4j2,它们底层实现用的都是slf4j,通过slf4j-api调用 使用指定类初始化日志对象,在日志输出的时候,可以打印出日志信息所在类如:Logger logge ...
- Linux学习之十一-Linux字符集及乱码处理
Linux字符集及乱码处理 1.字符(Character)是各种文字和符号的总称,包括各国家文字.标点符号.图形符号.数字等.字符集(Character set)是多个字符的集合,字符集种类较多,每个 ...