【发布时间】:2013-01-23 17:04:16
【问题描述】:
我是 c# 和 WPF 的新手,我正在尝试构建一个循环遍历文件夹并一张一张显示里面的图像的应用程序。当显示最后一个时,它需要再次显示第一个。
我尝试将所有文件命名为 1.jpg 、 2.jpg 等,然后循环浏览图片数量。但是,如果我删除一个,则会出现错误。
有没有更好的方法来完成这个?
我正在使用 C# 和一个 WPF 窗口,其中有一个网格内的图像。
任何帮助将不胜感激!
编辑:当前代码
private string[] files;
private System.Timers.Timer timer;
private int counter;
private int Imagecounter;
public IntroScreen()
{
InitializeComponent();
this.Loaded += new RoutedEventHandler(this.MainWindow_Loaded);
}
private void MainWindow_Loaded(object sender, RoutedEventArgs e)
{
setupPics();
}
private void setupPics()
{
timer = new System.Timers.Timer();
timer.Elapsed += new ElapsedEventHandler(timer_Tick);
timer.Interval = (2000);
timer.Enabled = true;
timer.Start();
files = Directory.GetFiles("../../Resources/Taken/", "*.jpg", SearchOption.TopDirectoryOnly);
Imagecounter = files.Length;
counter = 0;
}
private void timer_Tick(object sender, EventArgs e)
{
counter++;
Dispatcher.BeginInvoke(DispatcherPriority.Input, new ThreadStart(() =>
{
Picture.Source = new BitmapImage(new Uri(files[counter - 1], UriKind.Relative));
}));
if (counter == Imagecounter)
{
counter = 0;
}
}
这不起作用,它找到文件夹中的项目,但图像没有改变。
它不返回错误,只是不显示图像。
大家有什么建议吗?
【问题讨论】:
-
错误是什么?您是否在遍历图像集合时尝试删除?
-
好吧,这并不是一个错误,但我会计算文件夹中的图片数量,然后从 1 循环到最后。但是当我删除一个例如并添加另一个时。我会加载一张没有来源的图片,并且它不会响亮最后一张图片,因为它不会循环直到那张。
-
您能否发布一些代码以便我们为您提供帮助?我怀疑你应该从 0 开始循环。
-
-1。太模糊了。 “它给了我一个错误”是不够的。发布您的代码。发布您的 XAML。发布异常或您遇到的任何错误。至少尝试模拟您有兴趣解决它而不是让别人为您解决它。
-
如果用一些代码更新了我的帖子,我会走得更远,但我仍然无法显示图像,可能与我的路径有关?