public void Handle(ReportSettingsChangedEvent message) { lock (DisplayLock) { _issuedPreviewCustomizationId = message.CustomziationId; if (ReportPreviewGroupBox.IsEnabled && PresentationSource.FromVisual(ReportPreviewControl) != null) { var topLeftCorner = ReportPreviewControl.PointToScreen(new System.Windows.Point(0, 0)); var topLeftGdiPoint = new System.Drawing.Point((int)topLeftCorner.X, (int)topLeftCorner.Y); var size = new System.Drawing.Size((int)ReportPreviewControl.ActualWidth, (int)ReportPreviewControl.ActualHeight); var screenShot = new Bitmap((int)ReportPreviewControl.ActualWidth, (int)ReportPreviewControl.ActualHeight); using (var graphics = Graphics.FromImage(screenShot)) { graphics.CopyFromScreen(topLeftGdiPoint, new System.Drawing.Point(), size, CopyPixelOperation.SourceCopy); } PreviewOverlayImage.Source = Imaging.CreateBitmapSourceFromHBitmap(screenShot.GetHbitmap(), IntPtr.Zero, Int32Rect.Empty, BitmapSizeOptions.FromEmptyOptions()); ReportPreviewControl.Visibility = Visibility.Hidden; ((BlurEffect)PreviewOverlayImage.Effect).Radius = 20; ReportPreviewGroupBox.IsEnabled = false; } } }
private void ReportSettingsView_Closed(object sender, EventArgs e) { DataContextChanged -= ReportSettingsView_DataContextChanged; ReportPreviewControl.LoadCompleted -= ReportPreviewControl_LoadCompleted; Closed -= ReportSettingsView_Closed; Events.Unsubscribe(this); ReportPreviewControl.Navigate("http://localhost/"); // "about:blank" seems to lock the webbrowser when a pdf was loaded ReportPreviewBrowserContainer.Children.Remove(ReportPreviewControl); }