private void drag_area_tracker_OnDragComplete(bool button_left_pressed, bool button_right_pressed, Point mouse_down_point, Point mouse_up_point) { FeatureTrackingManager.Instance.UseFeature(Features.Document_Camera); double width_page = Math.Abs(mouse_up_point.X - mouse_down_point.X); double height_page = Math.Abs(mouse_up_point.Y - mouse_down_point.Y); if (3 <= width_page && 3 <= height_page) { CroppedBitmap image = GetSnappedImage(mouse_up_point, mouse_down_point); List <Word> words = GetSnappedWords(mouse_up_point, mouse_down_point); string raw_text = SelectedWordsToFormattedTextConvertor.ConvertToParagraph(words); string tabled_text = SelectedWordsToFormattedTextConvertor.ConvertToTable(words); CameraActionChooserDialog cacd = new CameraActionChooserDialog(); cacd.SetLovelyDetails(image, raw_text, tabled_text); cacd.ShowDialog(); } else { Logging.Info("Region too small to screen grab"); } }
private void drag_area_tracker_OnDragComplete(bool button_left_pressed, bool button_right_pressed, Point mouse_down_point, Point mouse_up_point) { FeatureTrackingManager.Instance.UseFeature(Features.Document_Camera); double width_page = Math.Abs(mouse_up_point.X - mouse_down_point.X); double height_page = Math.Abs(mouse_up_point.Y - mouse_down_point.Y); if (3 <= width_page && 3 <= height_page) { DocPageInfo page_info = new DocPageInfo { pdf_document = @pdf_document, page = @page, ActualHeight = @ActualHeight, ActualWidth = @ActualWidth }; SafeThreadPool.QueueUserWorkItem(o => { // GetSnappedImage() invokes the background renderer, hence run it in a background thread itself: BitmapSource image = GetSnappedImage(page_info, mouse_up_point, mouse_down_point); List <Word> words = GetSnappedWords(page_info, mouse_up_point, mouse_down_point); string raw_text = SelectedWordsToFormattedTextConvertor.ConvertToParagraph(words); string tabled_text = SelectedWordsToFormattedTextConvertor.ConvertToTable(words); WPFDoEvents.InvokeAsyncInUIThread(() => { CameraActionChooserDialog cacd = new CameraActionChooserDialog(); cacd.SetLovelyDetails(image, raw_text, tabled_text); cacd.ShowDialog(); }); }); } else { Logging.Info("Region too small to screen grab"); } }