using ComPDFKitViewer; using System; using System.Collections.Generic; using System.Windows; using System.Windows.Controls; using static ComPDFKit.Controls.PDFControlUI.CPDFViewModeUI; namespace ComPDFKit.Controls.PDFControl { public partial class CPDFViewModeControl : UserControl { public PDFViewControl ViewControl; public event EventHandler SplitModeChanged; public string CurrentContinuousMode = "Continuous"; public string CurrentViewMode = "Single"; public Dictionary, ViewMode> GetViewMode = new Dictionary, ViewMode>(); public CPDFViewModeControl() { InitializeComponent(); CPDFViewModeUI.Loaded += CPDFViewModeUI_Loaded; } public void InitWithPDFViewer(PDFViewControl viewControl) { this.ViewControl = viewControl; CPDFViewModeUI.SetContinuousEvent -= CPDFViewModeUI_SetContinuousEvent; CPDFViewModeUI.SetViewModeEvent -= CPDFViewModeUI_SetViewModeEvent; CPDFViewModeUI.SplitModeChanged -= CPDFViewModeUI_SplitModeChanged; CPDFViewModeUI.SetContinuousEvent += CPDFViewModeUI_SetContinuousEvent; CPDFViewModeUI.SetViewModeEvent += CPDFViewModeUI_SetViewModeEvent; CPDFViewModeUI.SplitModeChanged += CPDFViewModeUI_SplitModeChanged; } private void CPDFViewModeUI_Loaded(object sender, RoutedEventArgs e) { GetViewMode.Clear(); GetViewMode.Add(Tuple.Create("Continuous", "Single"), ViewMode.SingleContinuous); GetViewMode.Add(Tuple.Create("Continuous", "Double"), ViewMode.DoubleContinuous); GetViewMode.Add(Tuple.Create("Continuous", "Book"), ViewMode.BookContinuous); GetViewMode.Add(Tuple.Create("Discontinuous", "Single"), ViewMode.Single); GetViewMode.Add(Tuple.Create("Discontinuous", "Double"), ViewMode.Double); GetViewMode.Add(Tuple.Create("Discontinuous", "Book"), ViewMode.Book); } private void CPDFViewModeUI_SplitModeChanged(object sender, SplitMode e) { SplitModeChanged.Invoke(this, e); } private void CPDFViewModeUI_SetContinuousEvent(object sender, string e) { CurrentContinuousMode = (sender as RadioButton).Tag as string; if (ViewControl != null && ViewControl.PDFViewTool != null) { CPDFViewer pdfViewer = ViewControl.PDFViewTool.GetCPDFViewer(); pdfViewer?.SetViewMode(GetViewMode[Tuple.Create(CurrentContinuousMode, CurrentViewMode)]); } } private void CPDFViewModeUI_SetViewModeEvent(object sender, string e) { CurrentViewMode = (sender as RadioButton).Tag as string; if (ViewControl != null && ViewControl.PDFViewTool != null) { CPDFViewer pdfViewer = ViewControl.PDFViewTool.GetCPDFViewer(); pdfViewer?.SetViewMode(GetViewMode[Tuple.Create(CurrentContinuousMode, CurrentViewMode)]); } } } }