wpf中轮询显示图片

news2024/9/27 18:36:22

       本文的需求是,在一个文件夹中,放一堆图片的集合,然后在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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1949282.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

GPT-4o mini小型模型具备卓越的文本智能和多模态推理能力

GPT-4o mini 是首个应用OpenAI 指令层次结构方法的模型&#xff0c;这有助于增强模型抵抗越狱、提示注入和系统提示提取的能力。这使得模型的响应更加可靠&#xff0c;并有助于在大规模应用中更安全地使用。 GPT-4o mini 在学术基准测试中&#xff0c;无论是在文本智能还是多模…

mac怎样清理photoshop垃圾的方法 ps清理缓存和垃圾 苹果电脑暂存盘已满怎么清理

很多使用过ps&#xff0c;尤其是Adobe全家桶的小伙伴会发现&#xff0c;这些软件占用缓存很多&#xff0c;而且随着使用时间的增长&#xff0c;缓存也会越多&#xff0c;并不会自动清理。那么mac系统怎么清理ps暂存盘呢&#xff1f;mac又该怎么最高效清理磁盘空间呢&#xff1f…

【专题】2024年云计算白皮书报告合集PDF分享(附原数据表)

原文链接&#xff1a;https://tecdat.cn/?p37112 2023年全球云计算市场显著增长&#xff0c;预计将持续繁荣至2027年突破万亿美元&#xff0c;中国市场同样保持强劲势头&#xff0c;预计也将大幅跃升。国内云计算经过十余年发展&#xff0c;虽取得显著进展&#xff0c;但在资…

【系统架构设计师】十八、信息系统架构设计理论与实践②

目录 四、企业信息系统的总体框架 4.1 战略系统 4.2 业务系统 4.3 应用系统 4.4 企业信息基础设施 4.5 业务流程重组BPR 4.6 业务流程管理BPM 五、信息系统架构设计方法 5.1 行业标准的体系架构框架 5.2 架构开发方法 5.3 信息化总体架构方法 5.4 信息化建设生命周…

基于联咏 NT98692芯片赋能边缘计算IP摄像机与XVR监控系统解决方案

联咏 NT98692 是一款新世代整合度极高的 SoC&#xff0c;具有高影像品质、低位元率、低功耗&#xff0c;针对 8Kp30 边缘运算 IP 摄影机与后端监控系统 XVR 应用。此 SoC 整合了 ARM Quad Cortex A73 CPU 核心、新一代 ISP 和 AI ISP、H.265/H.264 视讯压缩编解码器、DSP、高效…

k8s核心知识总结

写在前面 时间一下子到了7月份尾&#xff1b;整个7月份都乱糟糟的&#xff0c;不管怎么样&#xff0c;日子还是得过啊&#xff0c; 1、7月份核心了解个关于k8s&#xff0c;iceberg等相关技术&#xff0c;了解了相关的基础逻辑&#xff0c;虽然和数开主线有点偏&#xff0c;但是…

流量回放新形态:基于网关 Access Log 发起

作者&#xff1a;休祯 背景 为什么需要流量回放 无论是面向即将上线的新版本做最后的性能测试&#xff0c;还是在遇到棘手的故障时帮助开发人员快速定位问题原因&#xff0c;流量回放技术都发挥着不可或缺的作用。使用真实世界的流量数据进行回放能使性能测试过程更加接近实…

Ubuntu22.04手动安装fabric release-2.5版本

这个过程稍微有点复杂&#xff0c;但完整操作完成以后会对Fabric网络有更加深入的理解&#xff0c;方便后续自己手动搭建Fabric网络。这个过程需要手动逐个下载Fabric源代码、使用命令下载Fabric镜像和用Git下载例子程序。 Fabric源代码主要用途是用来编译cryptogen、configtx…

ElasticSearch(六)— 全文检索

一、match系列查询 前面讲到的query中的查询&#xff0c;都是精准查询。可以理解成跟在关系型数据库中的查询类似。match系列的查询&#xff0c;是全文检索的查询。会通过分词进行评分&#xff0c;匹配&#xff0c;再返回搜索结果。 1.1 match 查询 "query": {&qu…

按图搜索新体验:阿里巴巴拍立淘API返回值详解

阿里巴巴拍立淘API是一项基于图片搜索的商品搜索服务&#xff0c;它允许用户通过上传商品图片&#xff0c;系统自动识别图片中的商品信息&#xff0c;并返回与之相关的搜索结果。以下是对阿里巴巴拍立淘API返回值的详细解析&#xff1a; 一、主要返回值内容 商品信息 商品列表…

20240725项目的maven环境报红-重新配置maven

1.在编辑器里面打开项目&#xff0c;导入源码 &#xff08;1&#xff09;找到项目的地址C:\Users\zzz\IdeaProjects\datasys&#xff0c;然后右击用idea编辑器打开。 &#xff08;2&#xff09;idea中上菜单栏打开open&#xff0c;然后输入file&#xff0c;选择源代码文件 2.…

primetime如何合并不同modes的libs到一个lib文件

首先&#xff0c;用primetime 抽 timing model 的指令如下。 代码如下&#xff08;示例&#xff09;&#xff1a; #抽lib时留一些margin, setup -max/hold -min set_extract_model_margin -port [get_ports -filter "!defined(clocks)"] -max 0.1 #抽lib extract_mod…

算法学习笔记(8.8)-多重背包

目录 Question: 思路解析&#xff1a; 代码示例 多重背包的优化问题&#xff1a; 1.二进制优化 代码示例&#xff1a; 2.单调队列优化(滑动窗口) 代码示例 Question: 4. 多重背包问题 I - AcWing题库https://www.acwing.com/problem/content/description/4/ 多重背包简单来说其…

深入理解 Java 虚拟机第三版(周志明)

这次社招选的这本作为 JVM 资料查阅&#xff0c;记录一些重点 1. 虚拟机历史 Sun Classic VM &#xff1a;已退休 HotSpot VM&#xff1a;主流虚拟机&#xff0c;热点代码探测技术 Mobile / Embedded VM &#xff1a;移动端、嵌入式使用的虚拟机 2.2 运行时数据区域 程序计…

基于java多媒体网络教学平台设计与开发

博主介绍&#xff1a;专注于Java .net php phython 小程序 等诸多技术领域和毕业项目实战、企业信息化系统建设&#xff0c;从业十五余年开发设计教学工作 ☆☆☆ 精彩专栏推荐订阅☆☆☆☆☆不然下次找不到哟 我的博客空间发布了1000毕设题目 方便大家学习使用 感兴趣的可以…

使用 Visual Studio 2022 自带的 cl.exe 测试编译 opencv helloworld

1. 参考博客&#xff1a;https://blog.csdn.net/yangSHU21/article/details/130237669( 利用OpenCV把一幅彩色图像转换成灰度图 )( 代码用的此博客的&#xff0c;就改了下图片文件路径而已 )。 2. 编译探索步骤&#xff1a; test.cpp&#xff1a; #include <iostream>…

三维点云深度网络 PointNeXt 的安装配置与测试

Title: 三维点云深度网络 PointNeXt 的安装配置与测试 文章目录 前言I. 环境创建1. 容器创建2. 容器中安装 CUDA Toolkit 11.3 II. 安装过程1. 安装 PointNeXt2. 解决安装问题 III. 数据准备1. 数据准备的执行2. 数据准备的原理 IV. 运行测试1. 显存溢出2. 训练3. 测试4. 标注颜…

UDP/TCP协议解析

我最近开了几个专栏&#xff0c;诚信互三&#xff01; > |||《算法专栏》&#xff1a;&#xff1a;刷题教程来自网站《代码随想录》。||| > |||《C专栏》&#xff1a;&#xff1a;记录我学习C的经历&#xff0c;看完你一定会有收获。||| > |||《Linux专栏》&#xff1…

mysql一个小问题引发的思考-mysql类型转换-查询缓存 及 MYSQL查询缓存以及自动选择不使用查询缓存的情况

一、mysql一个小问题引发的思考-mysql类型转换-查询缓存 最近在做的一个项目中有一个SQL语句发现点问题&#xff0c;大概如下&#xff1a; select * from table where cid0 or find_in_set(1, cid); 数据表中的字段cid是字符串类型&#xff0c;原来的后端同学未提过此字段还能是…

Pytorch使用教学3-特殊张量的创建与类型转化

1 特殊张量的创建 与numpy类似&#xff0c;PyTorch中的张量也有很多特殊创建的形式。 zeros:全0张量 # 形状为2行3列 torch.zeros([2, 3]) # tensor([[0., 0., 0.], # [0., 0., 0.]])ones:全1张量 # 形状为2行3列 torch.ones([2, 3]) # tensor([[1., 1., 1.], # …