我在我的WPF窗體上有一個畫布,我需要在運行系統中運行一系列圖像。如何刷新畫布中的圖像?在Canvas中播放圖像序列
回答
您對WPF應用程序中的可視元素所做的任何更改都將反映在視圖中。您不需要調用Refresh方法來使更改可見。對於您的應用程序,您可以創建一個DispatcherTimer
,然後更改您的Image.Source
或在每個Tick
上替換您的Image
。
例如:
<Canvas>
<Image x:Name="myImage" Source="SomeUri"/>
</Canvas>
而這個隱藏代碼:
var timer = new DispatcherTimer();
timer.Interval = TimeSpan.FromSeconds(1);
timer.Start();
timer.Tick += (s,e) =>
{
myImage.Source = // next image in sequence
}
我試過了它可以工作,但是我不能刪除也不能替換以前的圖像(已經顯示的圖像)。他們仍然被畫布打開嗎?爲什麼畫布(圖片)在他們身上掛鉤?我正在使用此代碼來刷新uri:Uri newUri = new Uri(@inputA); Image.ImageSource = new BitmapImage(newUri); – user1094315 2012-01-17 20:07:33
嘗試canvas.Children.Clear() - 如果我的回答有幫助,請註冊或接受。 – ColinE 2012-01-17 20:24:21
它沒有工作。任何其他方式,我可以清除或刪除舊的圖像和畫布之間的連接?謝謝你的幫助。 – user1094315 2012-01-17 20:51:38
可啉的答案是有幫助的。然而,我們還需要能夠使用FILESTREAM如下所以我們可以刷新或修改以前顯示的圖像:
FileInfo fileinfo = new FileInfo(MyFilePath);
if (fileinfo.Exists)
{
using (FileStream fs = System.IO.File.Open(MyFilePath,
FileMode.Open,
FileAccess.Read,
FileShare.ReadWrite))
{
using (StreamReader reader = new StreamReader(fs))
{
BitmapImage bitImg = new BitmapImage();
bitImg.BeginInit();
bitImg.StreamSource = fs;
bitImg.EndInit();
Image.ImageSource = bitImg;
}
}
}
- 1. 在MATLAB中播放圖像序列
- 2. PNG圖像序列播放問題
- 3. 圖像序列播放一次停止
- 4. 使用Qt播放圖像序列QMainWindow
- 5. 在WatchSimulator上播放但未在AppleWatch上播放的.gif圖像序列
- 6. 在UIView中播放循環圖像序列
- 7. 如何在循環播放圖像序列,反序
- 8. 從圖像數組中播放圖像
- 9. 播放的圖像
- 10. HTML圖像/視頻播放列表
- 11. 在列中放置圖像
- 12. 意圖播放YouTube播放列表
- 13. 在CANVAS上繪製圖像陣列
- 14. 縮放圖像序列
- 15. HTML5 Canvas縮放圖像動畫
- 16. 在圖像視圖中播放動畫GIF圖像文件
- 17. 放大在canvas上的jpeg圖像在javascript中的mousewheel事件
- 18. MediaPlayer在圖像列表中只播放一次有問題
- 19. 如何在圖像系列中自動播放視頻?
- 20. 在Java中循環播放MIDI序列
- 21. 在我的Canvas繪圖應用程序中下載Canvas HTML圖像到PNG
- 22. 播放聲音和圖像
- 23. Javascript循環播放圖像
- 24. 如何在另一圖像中播放圖像幻燈片?
- 25. 正在播放「播放/暫停」按鈕圖像
- 26. 如何在html5,canvas,javascript中將圖像縮放爲較大?
- 27. Canvas中重疊的圖像
- 28. 預覽圖像中JW播放器6
- 29. 在滑動圖像時播放聲音
- 30. HTML:在圖像內播放視頻
http://stackoverflow.com/questions/4214155/wpf-easiest-way-to-move -image-to-x-y-以編程方式嘗試這個 – 2012-01-17 06:12:37