具有透明背景的Xamarin.iOS屏幕快照

时间:2019-02-15 13:40:02

标签: xamarin.forms xamarin.ios skiasharp

我构建了一个应用程序,用户可以加载报告并在屏幕上绘画以突出显示并共享一些信息(作为图像)。我使用undefinedRg.Plugins.Popup.Pages.PopupPage开发了此功能。弹出页面具有透明背景和sharecontent按钮。用户在弹出页面中绘制。 在Android上,这可以很好地工作,因为我可以使用SkiaSharp拍摄整个屏幕,但是在iOS中,当我拍摄屏幕快照时,图像会变成黑色背景。我使用以下代码拍摄屏幕截图:

currentview.Window.DecorView.RootView

如何在Xamarin iOS中绘制具有透明背景的图像?

共享项目中PopupPage的代码隐藏

public void ShareContent(string imageName)
{
    UIGraphics.BeginImageContextWithOptions(new CoreGraphics.CGSize(UIScreen.MainScreen.Bounds.Width, UIScreen.MainScreen.Bounds.Height), false, 0);
    UIImage capture = UIApplication.SharedApplication.KeyWindow.Capture(); 
    UIGraphics.EndImageContext();

    var activityItems = new[] { capture };
    var activityController = new UIActivityViewController(activityItems, null);
    var topController = UIApplication.SharedApplication.KeyWindow.RootViewController;

    while (topController.PresentedViewController != null)
    {
        topController = topController.PresentedViewController;
    }

    topController.PresentViewController(activityController, true, () => { });
}

0 个答案:

没有答案