我在C# XAML Metro Image dynamic Source
上有上一个问题一切都很好,但是当我使用3"缓冲区"并且切换它们,我看到闪烁。
public Dictionary<int, BitmapImage>[] SpritesBuffer = new Dictionary<int,BitmapImage>[3];
(...)
image.Source = SpritesBuffer[0][0]; //first time use
(...)
timer = new DispatcherTimer();
timer.Interval = new TimeSpan(0, 0, 0, 0, 16);
timer.Tick += SwitchImageSource;
timer.Start();
在SwitchImageSource()中,我使用foreach循环来自1.缓冲区的图像,在某些操作中,我将缓冲区切换为2.并从缓冲区2中循环遍历图像。
但是当我已经在缓冲区1,2和3中循环时,它的一切都很好,图像也没有闪烁。但是在第一次循环中,我看到了闪烁。
我尝试在显示图像之前切换源:
foreach (Dictionary<int, BitmapImage> dic in SpritesBuffer)
{
foreach (KeyValuePair<int, BitmapImage> keyVal in dic)
{
image.Source = keyVal.Value;
}
}
但它不起作用。
我该如何解决这个问题? 谢谢!