1

我以前有关于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;
                }
           } 

但它不起作用。

请问我该如何解决这个问题?谢谢!

4

0 回答 0