void ScrollPages_PreviewMouseDown(object sender, MouseButtonEventArgs e) { ScrollPages.Focus(); }
public PDFRendererControl(PDFDocument pdf_document, bool remember_last_read_page, ZoomType force_zoom_type) { InitializeComponent(); pdf_renderer_control_stats = new PDFRendererControlStats(this, pdf_document); this.remember_last_read_page = remember_last_read_page; ObjPagesPanel.Background = ThemeColours.Background_Brush_Blue_LightToDark; PageRenderArea.SizeChanged += PDFRendererControl_SizeChanged; this.KeyUp += PDFRendererControl_KeyUp; this.KeyDown += PDFRendererControl_KeyDown; this.TextInput += PDFRendererControl_TextInput; this.PreviewMouseWheel += PDFRendererControl_MouseWheel; ScrollPages.PreviewMouseDown += ScrollPages_PreviewMouseDown; ScrollPages.ScrollChanged += ScrollPages_ScrollChanged; KeyboardNavigation.SetDirectionalNavigation(this, KeyboardNavigationMode.None); KeyboardNavigation.SetDirectionalNavigation(ScrollPages, KeyboardNavigationMode.None); KeyboardNavigation.SetDirectionalNavigation(ObjPagesPanel, KeyboardNavigationMode.None); // Set the initial zoom ZoomType zoom_type = ZoomType.Other; switch (ConfigurationManager.Instance.ConfigurationRecord.GUI_LastPagesUp) { case "1": zoom_type = ZoomType.Zoom1Up; break; case "2": zoom_type = ZoomType.Zoom2Up; break; case "N": zoom_type = ZoomType.ZoomNUp; break; case "W": zoom_type = ZoomType.ZoomWholeUp; break; default: zoom_type = ZoomType.Zoom1Up; break; } // Is the zoomtype forced? (e.g. by the metadata panel or the sniffer) if (ZoomType.Other != force_zoom_type) { zoom_type = force_zoom_type; } PageZoom(zoom_type); // Add the child pages bool add_bells_and_whistles = pdf_renderer_control_stats.pdf_document.PDFRenderer.PageCount < 50; Logging.Info("+Creating child page controls"); for (int page = 1; page <= pdf_renderer_control_stats.pdf_document.PDFRenderer.PageCount; ++page) { PDFRendererPageControl page_control = new PDFRendererPageControl(page, this, pdf_renderer_control_stats, add_bells_and_whistles); ObjPagesPanel.Children.Add(page_control); } Logging.Info("-Creating child page controls"); Logging.Info("+Setting initial viewport"); ReconsiderOperationMode(OperationMode.Hand); SetSearchKeywords(); // Eventually this should move into the reconsideroperationmode ScrollPages.Focus(); Logging.Info("-Setting initial viewport"); }
public PDFRendererControl(PDFDocument pdf_document, bool remember_last_read_page, ZoomType force_zoom_type) { WPFDoEvents.AssertThisCodeIsRunningInTheUIThread(); Theme.Initialize(); InitializeComponent(); //Unloaded += PDFRendererControl_Unloaded; Dispatcher.ShutdownStarted += Dispatcher_ShutdownStarted; pdf_renderer_control_stats = new PDFRendererControlStats(pdf_document); this.remember_last_read_page = remember_last_read_page; ObjPagesPanel.Background = ThemeColours.Background_Brush_Blue_LightToDark; PageRenderArea.SizeChanged += PDFRendererControl_SizeChanged; KeyUp += PDFRendererControl_KeyUp; KeyDown += PDFRendererControl_KeyDown; TextInput += PDFRendererControl_TextInput; PreviewMouseWheel += PDFRendererControl_MouseWheel; ScrollPages.PreviewMouseDown += ScrollPages_PreviewMouseDown; ScrollPages.ScrollChanged += ScrollPages_ScrollChanged; KeyboardNavigation.SetDirectionalNavigation(this, KeyboardNavigationMode.None); KeyboardNavigation.SetDirectionalNavigation(ScrollPages, KeyboardNavigationMode.None); KeyboardNavigation.SetDirectionalNavigation(ObjPagesPanel, KeyboardNavigationMode.None); // Set the initial zoom ZoomType zoom_type = ZoomType.Other; switch (ConfigurationManager.Instance.ConfigurationRecord.GUI_LastPagesUp) { case "1": zoom_type = ZoomType.Zoom1Up; break; case "2": zoom_type = ZoomType.Zoom2Up; break; case "N": zoom_type = ZoomType.ZoomNUp; break; case "W": zoom_type = ZoomType.ZoomWholeUp; break; default: zoom_type = ZoomType.Zoom1Up; break; } // Is the zoom type forced? (e.g. by the metadata panel or the sniffer) if (ZoomType.Other != force_zoom_type) { zoom_type = force_zoom_type; } PageZoom(zoom_type); var doc = pdf_renderer_control_stats.pdf_document; SafeThreadPool.QueueUserWorkItem(o => { // Add the child pages bool add_bells_and_whistles = (doc.PageCount > 0 && doc.PageCount < 50); WPFDoEvents.InvokeAsyncInUIThread(() => { Logging.Info("+Creating child page controls"); for (int page = 1; page <= doc.PageCount; ++page) { PDFRendererPageControl page_control = new PDFRendererPageControl(this, page, add_bells_and_whistles); ObjPagesPanel.Children.Add(page_control); } Logging.Info("-Creating child page controls"); }); }); Logging.Info("+Setting initial viewport"); ReconsiderOperationMode(OperationMode.Hand); SetSearchKeywords(); // Eventually this should move into the ReconsiderOperationMode ScrollPages.Focus(); Logging.Info("-Setting initial viewport"); }