コード例 #1
0
        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;
                }
            }
        }
コード例 #2
0
        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);
        }