当前位置: 首页 > news >正文

wpf中轮询显示图片

       本文的需求是,在一个文件夹中,放一堆图片的集合,然后在wpf程序中,按照定时的方式,循序显示照片。

全部代码

1.声明一个PictureInfo类

namespace WpfApp1
{public class PictureInfo{public string? FileName { get; set; }public string? FilePath { get; set; }}
}

2. 前端界面

<Window x:Class="WpfApp1.MainWindow"xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d="http://schemas.microsoft.com/expression/blend/2008"xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"xmlns:local="clr-namespace:WpfApp1"mc:Ignorable="d"Title="MainWindow" Height="450" Width="800"><StackPanel><Button Content="开始" Click="Button_Click" /><UniformGrid Grid.Row="2" Rows="2" Columns="5" Background="Beige"   ><!--<TextBlock Text="123"/><Image Source="/imgs/1.jpg"   Height="180" />--><StackPanel Margin="5,0,0,0"  ><TextBlock x:Name="txt1"  /><Image x:Name="img1"    Height="180" /></StackPanel><StackPanel Margin="5,0,0,0"><TextBlock x:Name="txt2"  /><Image  x:Name="img2"    Height="180" /></StackPanel><StackPanel Margin="5,0,0,0"><TextBlock  x:Name="txt3" /><Image   x:Name="img3"    Height="180" /></StackPanel><StackPanel  Margin="5,0,5,0"><TextBlock x:Name="txt4" /><Image  x:Name="img4"    Height="180" /></StackPanel><StackPanel  Margin="5,0,0,0"><TextBlock x:Name="txt5" /><Image x:Name="img5"     Height="180" /></StackPanel><StackPanel  Margin="5,0,0,0"><TextBlock x:Name="txt6" /><Image   x:Name="img6"    Height="180" /></StackPanel><StackPanel Margin="5,0,0,0" ><TextBlock x:Name="txt7" /><Image x:Name="img7"    Height="180" /></StackPanel><StackPanel  Margin="5,0,5,0"><TextBlock x:Name="txt8" /><Image x:Name="img8"     Height="180" /></StackPanel><StackPanel Margin="5,0,0,0" ><TextBlock x:Name="txt9" /><Image x:Name="img9"    Height="180" /></StackPanel><StackPanel  Margin="5,0,5,0"><TextBlock x:Name="txt10" /><Image x:Name="img10"     Height="180" /></StackPanel></UniformGrid></StackPanel>
</Window>

3.后端代码

此处的fileNames可以换做内存读取图片的集合

补充:在内存中转化图片的时候,有很多格式,其中

jpg,格式小

bmp,格式大

png,格式适中

using System.IO;
using System.Windows;
using System.Windows.Media.Imaging;
using System.Windows.Threading;namespace WpfApp1
{/// <summary>/// Interaction logic for MainWindow.xaml/// </summary>public partial class MainWindow : Window{/// <summary>/// 计时器/// </summary>DispatcherTimer timer = new DispatcherTimer();//获取图片的数据string[] fileNames = null;public MainWindow(){InitializeComponent();timer.Interval = new TimeSpan(0, 0, 2);//时 分 秒timer.Tick += new EventHandler(timer_Tick);fileNames = Directory.GetFiles(@"C:\\Users\\60287\\Desktop\\Excel\\3", "*.jpg");}private void Button_Click(object sender, RoutedEventArgs e){timer.Start();}/// <summary>/// 计时器事件/// </summary>int count = 0;private void timer_Tick(object sender, EventArgs e){if (count == 12)//12组照片,每组10张照片{count = 0;//播放完毕,重新开始}List<PictureInfo> lstPics = new List<PictureInfo>();var data = fileNames.Skip(10 * count).Take(10);count++;for (int i = 0; i < data.Count(); i++){PictureInfo pic = new PictureInfo();pic.FileName = "Picture" + i.ToString();pic.FilePath = data.ToArray()[i].ToString();lstPics.Add(pic);}txt1.Text = lstPics[0].FileName;img1.Source = new BitmapImage(new Uri(lstPics[0].FilePath));txt2.Text = lstPics[1].FileName;img2.Source = new BitmapImage(new Uri(lstPics[1].FilePath));txt3.Text = lstPics[2].FileName;img3.Source = new BitmapImage(new Uri(lstPics[2].FilePath));txt4.Text = lstPics[3].FileName;img4.Source = new BitmapImage(new Uri(lstPics[3].FilePath));txt5.Text = lstPics[4].FileName;img5.Source = new BitmapImage(new Uri(lstPics[4].FilePath));txt6.Text = lstPics[5].FileName;img6.Source = new BitmapImage(new Uri(lstPics[5].FilePath));txt7.Text = lstPics[6].FileName;img7.Source = new BitmapImage(new Uri(lstPics[6].FilePath));txt8.Text = lstPics[7].FileName;img8.Source = new BitmapImage(new Uri(lstPics[7].FilePath));txt9.Text = lstPics[8].FileName;img9.Source = new BitmapImage(new Uri(lstPics[8].FilePath));txt10.Text = lstPics[9].FileName;img10.Source = new BitmapImage(new Uri(lstPics[9].FilePath));}}
}

4.运行效果

本文来源:

wpf中轮询显示图片-CSDN博客

源码地址:

https://download.csdn.net/download/u012563853/89580787

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Jacoco 单元测试配置
  • 设计模式14-享元模式
  • 江科大/江协科技 STM32学习笔记P13
  • IP地址在后端怎么存才好?
  • Java项目中整合多个pdf合并为一个pdf
  • 【Java版数据结构】初识泛型
  • OpenKylin 系统中禁用 Win 键
  • html+css前端作业 王者荣耀官网1个页面(带报告)
  • Java面试八股之Spring框架的核心模块
  • Web动画(lottie篇)
  • Unity3D结合AI教育大模型 开发AI教师 AI外教 AI英语教师案例
  • 昇思25天学习打卡营第23天|LSTM+CRF序列标注
  • 图像生成中图像质量评估指标— LPIPS介绍
  • JCR一区级 | Matlab实现TTAO-Transformer-LSTM多变量回归预测
  • 分享几种电商平台商品数据的批量自动抓取方式
  • SegmentFault for Android 3.0 发布
  • 【css3】浏览器内核及其兼容性
  • 【MySQL经典案例分析】 Waiting for table metadata lock
  • 【翻译】babel对TC39装饰器草案的实现
  • AHK 中 = 和 == 等比较运算符的用法
  • Android Volley源码解析
  • JavaWeb(学习笔记二)
  • Java应用性能调优
  • JAVA之继承和多态
  • Koa2 之文件上传下载
  • nginx(二):进阶配置介绍--rewrite用法,压缩,https虚拟主机等
  • Python_网络编程
  • react 代码优化(一) ——事件处理
  • Tornado学习笔记(1)
  • vue学习系列(二)vue-cli
  • 阿里云应用高可用服务公测发布
  • 每天10道Java面试题,跟我走,offer有!
  • 网络应用优化——时延与带宽
  • 我有几个粽子,和一个故事
  • ​ 轻量应用服务器:亚马逊云科技打造全球领先的云计算解决方案
  • ‌JavaScript 数据类型转换
  • #100天计划# 2013年9月29日
  • #LLM入门|Prompt#1.7_文本拓展_Expanding
  • (1)SpringCloud 整合Python
  • (13):Silverlight 2 数据与通信之WebRequest
  • (3)医疗图像处理:MRI磁共振成像-快速采集--(杨正汉)
  • (php伪随机数生成)[GWCTF 2019]枯燥的抽奖
  • (rabbitmq的高级特性)消息可靠性
  • (大众金融)SQL server面试题(1)-总销售量最少的3个型号的车及其总销售量
  • (附源码)spring boot火车票售卖系统 毕业设计 211004
  • (论文阅读11/100)Fast R-CNN
  • (图文详解)小程序AppID申请以及在Hbuilderx中运行
  • (一)UDP基本编程步骤
  • (原創) 如何讓IE7按第二次Ctrl + Tab時,回到原來的索引標籤? (Web) (IE) (OS) (Windows)...
  • (转)GCC在C语言中内嵌汇编 asm __volatile__
  • (转)Java socket中关闭IO流后,发生什么事?(以关闭输出流为例) .
  • (转)利用ant在Mac 下自动化打包签名Android程序
  • .net mvc 获取url中controller和action
  • .NET Standard / dotnet-core / net472 —— .NET 究竟应该如何大小写?
  • .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖