Browse Source

综合-模式切换部分代码

zhuyi 1 year ago
parent
commit
94813dd401

BIN
Demo/Examples/Annotations/ComPDFKit.Tool.RE.dll


BIN
Demo/Examples/Annotations/ComPDFKit.Viewer.RE.dll


+ 26 - 0
Demo/Examples/Annotations/MainWindow.xaml.cs

@@ -94,10 +94,35 @@ namespace Annotations
             ComPDFKitViewer.ViewModes mode = ComPDFKitViewer.ViewModes.SingleContinuous;
 
             cPDFViewerTool.GetCPDFViewer().SetFitMode(ComPDFKitViewer.FitModes.FitHeight);
+            cPDFViewerTool.GetCPDFViewer().MouseWheelZoomHandler += MainWindow_MouseWheelZoomHandler;
             cPDFViewerTool.GetCPDFViewer().SetViewMode(mode);
             cPDFViewerTool.GetCPDFViewer().UpDataRenderFrame();
         }
 
+        double zoom = 1;
+        private void MainWindow_MouseWheelZoomHandler(object sender, MouseWheelZoomArgs e)
+        {
+            if (Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.RightCtrl))
+            {
+                e.IsZoom = true;
+                cPDFViewerTool.GetCPDFViewer().SetFitMode(ComPDFKitViewer.FitModes.FitZoom);
+                if (e.WheelBehavior == 1)
+                {
+                    zoom += 0.1;
+                }
+                else
+                {
+                    zoom -= 0.1;
+                    if (zoom < 0.1)
+                    {
+                        zoom = 0.1;
+                    }
+                }
+                cPDFViewerTool.GetCPDFViewer().SetZoom(zoom);
+                cPDFViewerTool.GetCPDFViewer().UpDataRenderFrame();
+            }
+        }
+
         private void LoadDocument()
         {
             if (pdfViewControl.PDFView.Document == null)
@@ -644,6 +669,7 @@ namespace Annotations
                 {
                     CPDFDisplaySettingsControl displayPanel = new CPDFDisplaySettingsControl();
                     displayPanel.InitWithPDFViewer(pdfViewControl.PDFView);
+                    displayPanel.InitWithPDFViewerTool(cPDFViewerTool);
                     PropertyContainer.Child = displayPanel;
                     PropertyContainer.Visibility = Visibility.Visible;
                     if ((bool)RightPanelButton.IsChecked)

BIN
Demo/Examples/Compdfkit_Tools/ComPDFKit.Tool.RE.dll


BIN
Demo/Examples/Compdfkit_Tools/ComPDFKit.Viewer.RE.dll


+ 19 - 1
Demo/Examples/Compdfkit_Tools/PDFView/PDFDisplaySettings/PDFDisplaySettingsControl/CPDFDisplaySettingsControl.xaml.cs

@@ -1,4 +1,5 @@
-using Compdfkit_Tools.PDFControlUI;
+using ComPDFKit.Tool;
+using Compdfkit_Tools.PDFControlUI;
 using ComPDFKitViewer;
 using ComPDFKitViewer.PdfViewer;
 using System.Collections.Generic;
@@ -14,6 +15,7 @@ namespace Compdfkit_Tools.PDFControl
         /// PDFViewer
         /// </summary>
         private CPDFViewer pdfView;
+        private CPDFViewerTool pdfViewerTool;
 
         public CPDFDisplaySettingsControl()
         {
@@ -24,11 +26,18 @@ namespace Compdfkit_Tools.PDFControl
         private void CPDFDisplaySettingsControl_Loaded(object sender, RoutedEventArgs e)
         {
             ViewModeUI.ViewModeChanged += ViewModeUI_ViewModeChanged;
+            ViewModeUI.ToolViewModeChanged += ViewModeUI_ToolViewModeChanged;
             ViewModeUI.SplitModeChanged += ViewModeUI_SplitModeChanged;
             ViewModeUI.CropModeChanged += ViewModeUI_CropModeChanged;
             DrawModeUI.DrawModeChanged += DrawModeUI_DrawModeChanged;
         }
 
+        private void ViewModeUI_ToolViewModeChanged(object sender, ViewModes e)
+        {
+            pdfViewerTool.GetCPDFViewer().SetViewMode(e);
+            pdfViewerTool.GetCPDFViewer().UpDataRenderFrame();
+        }
+
         private void ViewModeUI_CropModeChanged(object sender, bool e)
         {
             pdfView?.SetCropMode(e);
@@ -71,6 +80,15 @@ namespace Compdfkit_Tools.PDFControl
                 ViewModeUI.SetCropUI(pdfView.IsCropMode());
             } 
         }
+        public void InitWithPDFViewerTool(CPDFViewerTool newPDFViewTool)
+        {
+            pdfViewerTool = newPDFViewTool;
+            if(pdfViewerTool != null)
+            {
+                ViewModeUI.SetSplitModeUI(pdfView.Mode);
+                ViewModeUI.SetViewModeUI(pdfView.ModeView);
+            } 
+        }
 
         public void SetVisibilityWhenContentEdit(Visibility visible)
         {

+ 14 - 6
Demo/Examples/Compdfkit_Tools/PDFView/PDFDisplaySettings/PDFDisplaySettingsUI/CPDFViewModeUI.xaml.cs

@@ -27,6 +27,8 @@ namespace Compdfkit_Tools.PDFControlUI
 
         public event EventHandler<ViewMode> ViewModeChanged;
 
+        public event EventHandler<ViewModes> ToolViewModeChanged;
+
         public event EventHandler<bool> CropModeChanged;
 
 
@@ -98,7 +100,8 @@ namespace Compdfkit_Tools.PDFControlUI
             ClearViewState();
             BookViewBtn.IsChecked = true;
             BookViewPath.Fill = ActivePathBrush;
-            ViewModeChanged?.Invoke(this, ContinuePageBtn.IsChecked==true? ViewMode.BookContinuous:ViewMode.Book);
+            //ViewModeChanged?.Invoke(this, ContinuePageBtn.IsChecked==true? ViewMode.BookContinuous:ViewMode.Book);
+            ToolViewModeChanged?.Invoke(this, ContinuePageBtn.IsChecked == true ? ViewModes.BookContinuous : ViewModes.Book);
         }
 
         private void DoubleViewBtn_Click(object sender, RoutedEventArgs e)
@@ -106,7 +109,8 @@ namespace Compdfkit_Tools.PDFControlUI
             ClearViewState();
             DoubleViewBtn.IsChecked = true;
             DoubleViewPath.Fill = ActivePathBrush;
-            ViewModeChanged?.Invoke(this, ContinuePageBtn.IsChecked == true ? ViewMode.DoubleContinuous:ViewMode.Double);
+            //ViewModeChanged?.Invoke(this, ContinuePageBtn.IsChecked == true ? ViewMode.DoubleContinuous:ViewMode.Double);
+            ToolViewModeChanged?.Invoke(this, ContinuePageBtn.IsChecked == true ? ViewModes.DoubleContinuous:ViewModes.Double);
         }
 
         private void SingleViewBtn_Click(object sender, RoutedEventArgs e)
@@ -114,7 +118,8 @@ namespace Compdfkit_Tools.PDFControlUI
             ClearViewState();
             SingleViewBtn.IsChecked = true;
             SingleViewPath.Fill = ActivePathBrush;
-            ViewModeChanged?.Invoke(this, ContinuePageBtn.IsChecked == true ? ViewMode.SingleContinuous:ViewMode.Single);
+            //ViewModeChanged?.Invoke(this, ContinuePageBtn.IsChecked == true ? ViewMode.SingleContinuous:ViewMode.Single);
+            ToolViewModeChanged?.Invoke(this, ContinuePageBtn.IsChecked == true ? ViewModes.SingleContinuous : ViewModes.Single);
         }
 
         private void CropModeBtn_Click(object sender, RoutedEventArgs e)
@@ -126,19 +131,22 @@ namespace Compdfkit_Tools.PDFControlUI
         {
             if(SingleViewBtn.IsChecked==true)
             {
-                ViewModeChanged?.Invoke(this, ContinuePageBtn.IsChecked == true ? ViewMode.SingleContinuous : ViewMode.Single);
+                //ViewModeChanged?.Invoke(this, ContinuePageBtn.IsChecked == true ? ViewMode.SingleContinuous : ViewMode.Single);
+                ToolViewModeChanged?.Invoke(this, ContinuePageBtn.IsChecked == true ? ViewModes.SingleContinuous : ViewModes.Single);
                 return;
             }
 
             if (DoubleViewBtn.IsChecked == true)
             {
-                ViewModeChanged?.Invoke(this, ContinuePageBtn.IsChecked == true ? ViewMode.DoubleContinuous : ViewMode.Double);
+                //ViewModeChanged?.Invoke(this, ContinuePageBtn.IsChecked == true ? ViewMode.DoubleContinuous : ViewMode.Double);
+                ToolViewModeChanged?.Invoke(this, ContinuePageBtn.IsChecked == true ? ViewModes.DoubleContinuous : ViewModes.Double);
                 return;
             }
 
             if(BookViewBtn.IsChecked == true)
             {
-                ViewModeChanged?.Invoke(this, ContinuePageBtn.IsChecked == true ? ViewMode.BookContinuous : ViewMode.Book);
+                //ViewModeChanged?.Invoke(this, ContinuePageBtn.IsChecked == true ? ViewMode.BookContinuous : ViewMode.Book);
+                ToolViewModeChanged?.Invoke(this, ContinuePageBtn.IsChecked == true ? ViewModes.BookContinuous : ViewModes.Book);
             }
         }