UI 要素のスクリーンショットを撮るために Writeablebitmap を使用しています。コードは次のようになります。
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() メソッドを呼び出す保存ボタンを押してから、ホーム ボタンを押してアプリを削除し、最後に [戻る] ボタンを押してアプリを元に戻すと、「再開しています」という画面が表示されることです。 ...」と表示され、最終的にアプリがクラッシュします。デバッグを行った後、次のコード行が原因でエラーが発生しているように見えることに気付きました。
WriteableBitmap bmp = new WriteableBitmap(element, null);
その行を次のように置き換えます。
WriteableBitmap bmp = null;
クラッシュから私を救いますが、私のアプリは意図したとおりに機能しません (スクリーンショットは機能しません)。
誰かがこの問題に遭遇したことがありますか、またはそれを修正する方法を知っていますか? 特定の UI 要素のスクリーンショットを撮ることができる限り、どのような回避策も受け入れます。