我以前有关于C# XAML Metro Image 动态源的问题
一切都很好,但是当我使用 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;
}
}
但它不起作用。
请问我该如何解决这个问题?谢谢!