首页 > 解决方案 > 正确加载画笔后画布仍为白色

问题描述

我有一个程序,我使用佳能 EDSDK。我在一个循环中制作 40 张图片(每张照片后总是等待 3 秒)。现在我的问题是:在第 10 或第 11 张图片之后,我的画布没有显示图片,它变白了。在 2 或 3 张图片之后,它再次显示一个图像,然后再次为 1 或 2 张图片变为白色......当我查看调试器时,Canvas.Background = MyPicture 所以没有问题,值是正确的。

这里有一些代码(事件是 MainCamera 下载就绪)所以如果我的相机有东西要下载,它会在下载后将图片带入 CANVAS(我在另一个类中制作的下载事件所以不要怀疑^^)

public void MainCamera_DownloadReady(Camera sender, DownloadInfo Info)
    {
        try
        {
            Dispatcher.Invoke(() =>
            {
                try
                {
                    Thread.Sleep(1100);
                    brush.ImageSource = new BitmapImage(new Uri($@"C:\Fotos\Papierkorb\TMP\{data.timeStamp}\Animation\{mc.artikelnummer.Split('_')[0]}_00_{(mc.animationsNummer - 1).ToString("00")}.jpg", UriKind.Relative));
                    LVCanvas.Background = brush;

                }
                catch (Exception ex)
                {
                    //LoadPicsInListView();
                    sentry.BugRepport(ex.ToString(), ex);
                }
            });

            Dispatcher.Invoke(() =>
            {
                File.Copy($@"C:\Fotos\Papierkorb\TMP\{data.timeStamp}\Animation\{mc.artikelnummer.Split('_')[0]}_00_{(mc.animationsNummer - 1).ToString("00")}.jpg", $@"C:\Fotos\{mc.artikelnummer}\{mc.artikelnummer.Split('_')[0]}\{mc.artikelnummer.Split('_')[0]}_00_{(mc.animationsNummer - 1).ToString("00")}.jpg");
                LoadPicsInListView();
            });
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.ToString());
            sentry.BugRepport(ex.ToString(), ex);
        }
    }

xml:

<Canvas Height="560" Width="840" x:Name="LVCanvas" Background="LightGray" HorizontalAlignment="Left" Margin="50,0,0,0" >

标签: c#imagecanvas

解决方案


推荐阅读