显示图像控件中目录中的每个图像

本文关键字:图像 控件 显示 显示图 | 更新日期: 2023-09-27 18:08:31

我想在图像控件中显示本地目录中的内容(.jpg文件)。图像必须以5秒的延迟替换。

    DirectoryInfo dir = new DirectoryInfo(@"D:'somedir");
            FileInfo[] files = dir.GetFiles();
            foreach (var item in files)
            {
                imgBox.Source = (ImageSource)new ImageSourceConverter().ConvertFromString(item.FullName);
            }

显示图像控件中目录中的每个图像

将图像加载到内存中,然后使用一个后台线程以定义的延迟旋转它们。从后台线程访问UI控件需要Dispatcher调用。

List<Image> images;
void GetImagesIntoAList()
{
    List<Image> images = new List<Image>();
    DirectoryInfo dir = new DirectoryInfo(@"D:'somedir");
                FileInfo[] files = dir.GetFiles();
                foreach (var item in files)
                {                        
                   FileStream stream = new FileStream(item.FullName, FileMode.Open, FileAccess.Read);
                   Image i = new Image();
                   BitmapImage src = new BitmapImage();
                   src.BeginInit();
                   src.StreamSource = stream;
                   src.EndInit();
                   i.Source = src;
                   images.Add(i);
                }
   Thread rotator = new Thread(rotate);
   rotator.Start();
}
void rotate()
{
   foreach(var img in images)
   {
      Dispatcher.BeginInvoke( () => 
      { 
         nameOfImageControlOnAWindow.Source = img;
      }
      );
      Thread.Sleep(5000);
   }
}