Example #1
        /// <summary>
        /// Shows the native MFMailComposeViewController to send an email.
        /// Raises MailCompleted event when completed.</summary>
        /// <param name="recipients"> An array of strings representing the email addresses of the recipients.</param>
        /// <param name="subject"> The subject of the email.</param>
        /// <param name="body"> The body of the email.</param>
        /// <param name="bodyIsHTML"> True if the body is HTML; false otherwise.</param>
        /// <param name="image"> The image to attach to the email.</param>
        /// <param name="checkServiceAvailable"> Whether to check if the service is available first.</param>
        /// <returns> True if it is able to show the native view controller; false if it cannot send email.</returns>
        public static bool Mail(string[] recipients, string subject, string body, bool bodyIsHTML, UIImage image, bool checkServiceAvailable)
            if (checkServiceAvailable && !MFMailComposeViewController.CanSendMail())
                return false;

            var vc = new MFMailComposeViewController();
            if (vc.IsNil)
                return false;

            vc.mailComposeDelegate = MailComposeViewControllerDelegate.instance;
            vc.SetMessageBody(body, bodyIsHTML);

            if (image != null) {
                var nsdata = image.PNGRepresentation();
                vc.AddAttachmentData(nsdata, "image/png", "image.png");

            UIApplication.deviceRootViewController.PresentViewController(vc, true, null);
            return true;
Example #2
 /// <summary>
 /// Exports an UIImage in PNG format to Photos album.
 /// Raises ExportCompleted or ExportFailed events on completion.
 /// </summary>
 /// <param name="image">Image.</param>
 public static void ExportPNG(UIImage image)
     NSData data = image.PNGRepresentation();
     assetsLibrary.WriteImageDataToSavedPhotosAlbum(data, new Dictionary<object, object>(), _OnWriteCompletion);