我有一个问题,我认为其他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
}
答案 0 :(得分:-2)
发现问题 - 在转出页面时,现代UI容器被清除。