在Image控件中“动画”图像的最佳方法

时间:2014-02-15 14:40:02

标签: c# wpf

我正在编写一个程序,显示来自Met Office的各种天气数据和图像,我想为图像数据集添加实时动画功能。

目前,图像数据集页面有一个ListView,其中包含具有原始时间的项目,为显示格式化的时间以及其PNG图像层文件的路径。还有一个Image控件,通过将其源设置为当前所选ListView项的路径来显示图像。

目前,我正在使用调度程序计时器来增加ListView的所选索引,该索引将依次触发其SelectionChanged事件以将图像源设置为当前所选项目。但DispatcherTimer非常滞后,看起来它的间隔波动超过其他用户可选择的间隔。这是当前的代码:

times.SelectedIndex = times.SelectedIndex == 0 ? times.Items.Count - 1 : times.SelectedIndex - 1;

对于ListView的SelectionChanged事件:

if (times.SelectedItem != null)
{
    try
    {
         data.Source = new BitmapImage(new Uri(((Time)times.SelectedItem).Directory));
         dataOriginal.Source = new BitmapImage(new Uri(((Time)times.SelectedItem).Directory.Replace("_LORES.png", "_HIRES.png")));
    }
    catch (Exception) { }
}

我需要一种更好的方法来遍历项目以获得实时动画,并且它需要能够支持大约几毫秒到几秒的间隔来获得缓慢且非常快速的动画而不会滞后。我基本上想要的东西与你在大多数在线天气图上看到的一样,它可以在整个时间内动画,但速度可以更快。另外,我正在使用WPF。我希望我没有解释太多,谢谢。

0 个答案:

没有答案