private void SetImage() { var imageView = this.NativeUIElement as ImageView; if (imageView != null && this.Source != null) { try { var drawable = new BitmapDrawable(this.Source.GetBitmap()); drawable.SetTargetDensity(this.Context.Resources.DisplayMetrics); imageView.SetImageDrawable(drawable); drawable.Dispose(); this.Dispatcher.BeginInvoke(() => { this.ImageOpened(this, new RoutedEventArgs() { OriginalSource = this }); }); } catch (Exception e) { this.Dispatcher.BeginInvoke(() => { this.ImageFailed(this, new ExceptionRoutedEventArgs(e) { ErrorMessage = "Image can not be opened." }); }); } } }