动态WPF图像加载问题

本文关键字:问题 加载 图像 WPF 动态 | 更新日期: 2023-09-27 18:20:09

我有一个问题,我认为它没有在众多其他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
}

动态WPF图像加载问题

发现问题-从页面转换时,Modern UI容器被清除。