我想制作一组图片来设置我的图片控件。有一个循环会遍历图片并每秒显示一次,直到它停在随机图片上。如何创建一个ImageSource类型的数组?
我的方法:我将图片路径存储在一个字符串中,然后放入数组中。在我的循环内部,我创建了一个新的ImageSource,并通过将它显示出来的数组项来定义它。我相信我的程序无法工作的原因是ImageSource无法从文件中拉出图像,并在睡眠线程让图片显示一秒钟之前将其设置为图像控制器足够快。
这里是我的代码(假设字符串是正确的路径,我试过无数的Thread.Sleep()变量)
此代码运行,但它只是显示,而不是通过所有的人都迅速翻转,然后停在最后一张照片最后一张照片。
将使类型ImageSource的数组保持图片“手上”显示更快? WPF可以支持获取和设置图像到图像控制器所需的速度吗? 在设置和显示图像之前,我的睡眠线程是否会执行得太快?
private void ButtonClick(object sender, RoutedEventArgs e)
{
String[] picArray = new String[] { kristen, justin, brandon, sarah, miles, nina };
int i = 0;
x = rnd.Next(0,5);
while (i < rnd.Next(10,50))
{
ImageSource _currentPic = new BitmapImage(new Uri(picArray[x]));
cImage.Source = _currentPic;
if (x == 5)
x = 0;
else
x++;
Thread.Sleep(100);
i++;
}
}
循环停止在数组中的“随机”点上,以随机化其方法结束的图片。
提前致谢。
'ImageSource []',它肯定会更快地依赖于你如何存储它们,如果你只是保持它们在本地方法,那么这将需要更长的时间 – Sayse
不涉及你的问题,但看起来你在UI线程上执行一些长操作,特别是在那里使用'Thread.Sleep()'调用。你可能想考虑改变它。 – Steve
我试图使用ImageSource [],但它不会让我创建和该类型的数组。关于thread.sleep(),我没有太多考虑。会使用计时器更有效吗? – meisenman