1
我想在我的WPF應用程序中有一個旋轉的廣告顯示。當我加載應用程序時,GetNewAd()方法正確顯示廣告。當我嘗試通過再次調用GetNewAd()方法來更新廣告時,chatHost將返回新廣告,但該圖像不會在UI中更新。我試圖更新沒有動畫的圖像,但我仍然有同樣的問題。我在這裏錯過了什麼?WPF圖片來源不更新圖像
public class ncWindow
{
public ncWindow(Grid grid)
{
imgAd = new Image();
imgAd.Margin = new Thickness(2,2,2,2);
imgAd.HorizontalAlignment = HorizontalAlignment.Left;
imgAd.MouseDown += imgAd_MouseDown;
adTimer.Interval = 60000;
adTimer.Elapsed += adTimer_Elapsed;
adTimer.AutoReset = true;
adTimer.Start();
grid.Children.Add(imgAd);
}
public void GetNewAd()
{
DisplayedAd = chatHost.GetNewAd();
debug.Print("GetNewAd: " + DisplayedAd.VendorName + ", ImageData.Length = " + DisplayedAd.ImageData.Length);
BitmapImage image = new BitmapImage();
if (DisplayedAd.ImageData!=null && DisplayedAd.ImageData.Length>0)
{
using (var mem = new MemoryStream(DisplayedAd.ImageData))
{
mem.Position = 0;
image.BeginInit();
image.CacheOption = BitmapCacheOption.OnLoad;
image.StreamSource = mem;
image.EndInit();
}
}
else
return;
image.Freeze();
imgAd.Source = image;
}
private void adTimer_Elapsed(object source, ElapsedEventArgs e)
{
GetNewAd();
}
}
是'imgAd '控件曾經添加到您的用戶界面中的面板?它看起來不像。 – Clemens
它被添加到網格中。我更新了代碼以顯示這是如何完成的。 – Traderman57
您確定DisplayedAd.ImageData始終爲非零且不爲空?並且是UI線程中調用的GetNewAd方法? – Clemens