2
我有一個問題,我認爲還沒有被其他衆多WPF圖像加載問題所覆蓋。我正在掃描幾張圖片並將它們傳遞給「預覽頁面」。預覽頁面使用圖像縮略圖,並通過生成的位圖顯示打印輸出的樣子。動態WPF圖像加載問題
對我而言,奇怪的是,如果我第一次運行該程序,它會正常工作。在到達過程結束並點擊「重新開始」時,預覽將返回空白。我在一個將位圖保存爲隨機文件名的方法中創建BitmapImage,所以我不相信第二次鎖定文件。另外,如果我去查看通過資源管理器創建的臨時文件,它會被正確繪製,因此我知道正確的數據已經到達它。
最後,當我離開此頁面時,我正在清除必要的數據。我真的很困惑,任何幫助,將不勝感激。
//Constructor
public Receipt_Form() {
InitializeComponent();
printData = new List<Object>();
this.Loaded += new RoutedEventHandler(MainWindow_Loaded);
}
void MainWindow_Loaded(object sender, RoutedEventArgs e) {
// populates global variable fileName
var task = System.Threading.Tasks.Task.Factory.StartNew(() => outputToBitmap()); task.ContinueWith(t => setImage(fileName),
System.Threading.Tasks.TaskScheduler.FromCurrentSynchronizationContext());
// I started the image creation in a separate thread because I
// thought it may be blocking the UI thread, but it didn't matter
}
private void setImage(string imageURI) {
BitmapImage image;
using (FileStream stream = File.OpenRead(imageURI)) {
image = new BitmapImage();
image.BeginInit();
image.StreamSource = stream;
image.CacheOption = BitmapCacheOption.OnLoad;
image.EndInit();
}
receiptPreview.Source = image;
//this works the first iteration but not the second, though the temp file is created successfully
}
保存臨時文件的意義在哪裏?爲什麼不直接從'outputToBitmap'方法返回創建的位圖? – Clemens 2014-08-29 15:55:45
我最初是這麼做的,但爲了調試的目的,我將它改爲當前狀態(查看創建的圖像)。 – wbt11a 2014-08-29 15:57:21
究竟是什麼意思「重新開始」?這是你程序中的一個特殊功能嗎? – Clemens 2014-08-29 16:10:44