private async void OnTakeScreenshotClicked(object sender, EventArgs e)
{
// Export the image from mapview and assign it to the imageview
var exportedImage = await MyMapView.ExportImageAsync();
// Create layout for sublayers page
// Create root layout
var layout = new StackLayout();
var closeButton = new Button
{
Text = "Close"
};
closeButton.Clicked += CloseButton_Clicked;
// Create image bitmap by getting stream from the exported image
var buffer = await exportedImage.GetEncodedBufferAsync();
byte[] data = new byte[buffer.Length];
buffer.Read(data, 0, data.Length);
var bitmap = ImageSource.FromStream(() => new System.IO.MemoryStream(data));
var image = new Image()
{
Source = bitmap,
Margin = new Thickness(10)
};
// Add elements into the layout
layout.Children.Add(closeButton);
layout.Children.Add(image);
// Create internal page for the navigation page
var screenshotPage = new ContentPage()
{
Content = layout,
Title = "Screenshot"
};
// Navigate to the sublayers page
await Navigation.PushAsync(screenshotPage);
}