我正在使用 Writeablebitmap 截取 UI 元素的屏幕截图。代码如下所示:
private void Screenshot(FrameworkElement element, String fileNameLoader)
{
try
{
WriteableBitmap bmp = new WriteableBitmap(element, null);
MemoryStream ms = new MemoryStream();
bmp.SaveJpeg(ms, (int)element.ActualWidth, (int)element.ActualHeight, 0, 100);
ms.Seek(0, SeekOrigin.Begin);
MediaLibrary lib = new MediaLibrary();
String filePath = string.Format(fileNameLoader);
lib.SavePicture(filePath, ms);
}
catch (Exception exception)
{
txtDebug.Text = "There was an error. Could not save. " + exception.ToString();
}
}
我遇到的问题是,如果我按下调用 Screenshot() 方法的保存按钮,然后按下 Home 按钮以墓碑应用程序,最后按下 Back 按钮以恢复应用程序,我会看到一个屏幕显示“正在恢复...”,应用程序最终崩溃。做了一些调试后,我注意到错误似乎是由以下代码行引起的:
WriteableBitmap bmp = new WriteableBitmap(element, null);
将该行替换为:
WriteableBitmap bmp = null;
使我免于崩溃,但我的应用程序无法按预期工作(屏幕截图不起作用)。
有没有人遇到过这个问题或知道如何解决它?我愿意接受任何解决方法,只要我仍然可以截取特定 UI 元素的屏幕截图。