如何在iPhone的xamarin中捕获带有弹出窗口的屏幕截图?

时间:2019-07-04 07:14:49

标签: ios xamarin popup screenshot

我需要在iPhone中捕获我的应用程序的屏幕。每当要捕获的弹出页面时,屏幕快照中只有弹出视图可见,捕获的屏幕快照中的背景屏幕变为黑色。我需要屏幕截图以显示弹出窗口以及基础页面。

我正在Xamarin.Forms中编码。我正在使用DependencyService来捕获iOS和Android中的屏幕截图。

在Android中,我能够捕获弹出窗口以及背景页面。 但是在iOS中,会捕获弹出窗口以及黑色背景。

var capture = UIScreen.MainScreen.Capture();

这是iOS DependencyService中用于捕获屏幕截图的代码。

1 个答案:

答案 0 :(得分:1)

我在一个POC中使用了一种截图方法,但是我不确定它是否可以与弹出窗口配合使用,您可以尝试一下

 private void TakeScreenshot()
    {
        var layer = UIApplication.SharedApplication?.KeyWindow?.Layer;
        var scale = UIScreen.MainScreen.Scale;
        UIGraphics.BeginImageContextWithOptions(layer.Frame.Size, false, scale);
        var context = UIGraphics.GetCurrentContext();
        if (context == null)
        {
            return; // Show popup screenshot was not taken 
        }
        layer.RenderInContext(context);
        var screenshotImage = UIGraphics.GetImageFromCurrentImageContext();
        UIGraphics.EndImageContext();
        if (screenshotImage != null)
        {
            screenshotImage.SaveToPhotosAlbum((UIImage, NSError) => { });
        }

    }