c# - 正确加载画笔后画布仍为白色
问题描述
我有一个程序,我使用佳能 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" >
解决方案
推荐阅读
- android - 在 Kotlin 中将值从 Activity 传递到 Fragment
- python - 使用 Kivy 连接的 GridLayout 对象没有属性标题
- python - 数据框:带有“vlookup”的滚动窗口
- python - 为什么即使我只使用一个循环,时间复杂度也会不同?
- java - Java对对象数组进行排序
- python-3.x - Keras 中的多臂强盗特工
- papaparse - 使用 PapaParse 解析本地文件?
- javascript - for 循环中的函数生成器
- javascript - 如何将 ajax responseText 设置为等于字符串?
- c# - 如何从 chrome 中打开的选项卡中抓取 HTML?