Przeglądaj źródła

splitviewer - 禁止ContentEdit下splitviewer,修复主题颜色,补充页面缩放显示和控制

sunhaonan 1 rok temu
rodzic
commit
c4897339b3

+ 14 - 14
Demo/Examples/Compdfkit_Tools/Common/BaseControl/PageNumberControl.xaml.cs

@@ -24,13 +24,13 @@ namespace Compdfkit_Tools.Common
             {
                 if (pdfView != null)
                 {
-                    pdfView.PDFViewTool.DrawChanged -= PdfView_InfoChanged;
+                    pdfView.DrawChanged -= PdfView_InfoChanged;
                 }
                 pdfView = newPDFView;
                 if (pdfView != null)
                 {
-                    pdfView.PDFViewTool.DrawChanged -= PdfView_InfoChanged;
-                    pdfView.PDFViewTool.DrawChanged += PdfView_InfoChanged;
+                    pdfView.DrawChanged -= PdfView_InfoChanged;
+                    pdfView.DrawChanged += PdfView_InfoChanged;
                 }
             }
         }
@@ -47,13 +47,13 @@ namespace Compdfkit_Tools.Common
         private void NextPageBorder_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
         {
             SetPageRangeVisible();
-            if (pdfView.PDFViewTool.GetCPDFViewer().GetViewMode() == ComPDFKitViewer.ViewModes.Single || pdfView.PDFViewTool.GetCPDFViewer().GetViewMode() == ComPDFKitViewer.ViewModes.SingleContinuous)
+            if (pdfView.GetCPDFViewer().GetViewMode() == ComPDFKitViewer.ViewModes.Single || pdfView.GetCPDFViewer().GetViewMode() == ComPDFKitViewer.ViewModes.SingleContinuous)
             {
-                pdfView.PDFViewTool.GetCPDFViewer().GoToPage(pdfView.PDFViewTool.GetCPDFViewer().CurrentRenderFrame.PageIndex + 1,new Point(0,0));
+                pdfView.GetCPDFViewer().GoToPage(pdfView.GetCPDFViewer().CurrentRenderFrame.PageIndex + 1,new Point(0,0));
             }
             else
             {
-                pdfView.PDFViewTool.GetCPDFViewer().GoToPage(pdfView.PDFViewTool.GetCPDFViewer().CurrentRenderFrame.PageIndex + 2, new Point(0, 0));
+                pdfView.GetCPDFViewer().GoToPage(pdfView.GetCPDFViewer().CurrentRenderFrame.PageIndex + 2, new Point(0, 0));
             }
 
         }
@@ -61,22 +61,22 @@ namespace Compdfkit_Tools.Common
         private void PrevPageBorder_MouseLeftButtonDown(object sender, MouseButtonEventArgs e)
         {
             SetPageRangeVisible();
-            if (pdfView.PDFViewTool.GetCPDFViewer().GetViewMode() == ComPDFKitViewer.ViewModes.Single || pdfView.PDFViewTool.GetCPDFViewer().GetViewMode() == ComPDFKitViewer.ViewModes.SingleContinuous)
+            if (pdfView.GetCPDFViewer().GetViewMode() == ComPDFKitViewer.ViewModes.Single || pdfView.GetCPDFViewer().GetViewMode() == ComPDFKitViewer.ViewModes.SingleContinuous)
             {
-                pdfView.PDFViewTool.GetCPDFViewer().GoToPage(pdfView.PDFViewTool.GetCPDFViewer().CurrentRenderFrame.PageIndex - 1, new Point(0, 0));
+                pdfView.GetCPDFViewer().GoToPage(pdfView.GetCPDFViewer().CurrentRenderFrame.PageIndex - 1, new Point(0, 0));
             }
             else
             {
-                pdfView.PDFViewTool.GetCPDFViewer().GoToPage(pdfView.PDFViewTool.GetCPDFViewer().CurrentRenderFrame.PageIndex - 2, new Point(0, 0));
+                pdfView.GetCPDFViewer().GoToPage(pdfView.GetCPDFViewer().CurrentRenderFrame.PageIndex - 2, new Point(0, 0));
             }
         }
 
         private void PageRangeText_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
         {
             PageRangeText.Visibility = Visibility.Collapsed;
-            if(pdfView!=null && pdfView.PDFViewTool.GetCPDFViewer().GetDocument() != null)
+            if(pdfView!=null && pdfView.GetCPDFViewer().GetDocument() != null)
             {
-                PageInputText.Text =string.Format("{0}", pdfView.PDFViewTool.GetCPDFViewer().CurrentRenderFrame.PageIndex + 1);
+                PageInputText.Text =string.Format("{0}", pdfView.GetCPDFViewer().CurrentRenderFrame.PageIndex + 1);
             }
             PageInputText.Visibility = Visibility.Visible;
             PageInputText.Focus();
@@ -105,14 +105,14 @@ namespace Compdfkit_Tools.Common
 
         private void SetInputPage()
         {
-            if (pdfView != null && pdfView.PDFViewTool.GetCPDFViewer().GetDocument() != null)
+            if (pdfView != null && pdfView.GetCPDFViewer().GetDocument() != null)
             {
 
                 if (int.TryParse(PageInputText.Text, out int newPageNum))
                 {
-                    newPageNum = Math.Min(pdfView.PDFViewTool.GetCPDFViewer().GetDocument().PageCount, newPageNum);
+                    newPageNum = Math.Min(pdfView.GetCPDFViewer().GetDocument().PageCount, newPageNum);
                     newPageNum = Math.Max(1, newPageNum);
-                    pdfView.PDFViewTool.GetCPDFViewer().GoToPage(newPageNum-1,new Point(0,0));
+                    pdfView.GetCPDFViewer().GoToPage(newPageNum-1,new Point(0,0));
                 }
             }
         }

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

@@ -64,8 +64,8 @@ namespace Compdfkit_Tools.PDFControl
         public void InitWithPDFViewer(PDFViewControl viewControl)
         {
             ViewControl = viewControl;
-            ViewControl.SelectedPDFViewToolChanged -= PDFViewControl_SelectedPDFViewToolChanged;
-            ViewControl.SelectedPDFViewToolChanged += PDFViewControl_SelectedPDFViewToolChanged;
+            ViewControl.FocusPDFViewToolChanged -= PDFViewControl_FocusPDFViewToolChanged;
+            ViewControl.FocusPDFViewToolChanged += PDFViewControl_FocusPDFViewToolChanged;
             if(ViewControl != null && ViewControl.PDFViewTool!=null)
             {
                CPDFViewer pdfViewer=  viewControl.PDFViewTool.GetCPDFViewer();
@@ -87,7 +87,7 @@ namespace Compdfkit_Tools.PDFControl
             DrawModeUI.DrawModeChanged += DrawModeUI_DrawModeChanged;
         }
 
-        private void PDFViewControl_SelectedPDFViewToolChanged(object sender,EventArgs e)
+        private void PDFViewControl_FocusPDFViewToolChanged(object sender,EventArgs e)
         {
             if (ViewControl != null && ViewControl.PDFViewTool != null)
             {

+ 13 - 1
Demo/Examples/Compdfkit_Tools/PDFView/PDFDisplaySettings/PDFDisplaySettingsUI/CPDFViewModeUI.xaml.cs

@@ -221,11 +221,23 @@ namespace Compdfkit_Tools.PDFControlUI
             if (visibility == Visibility.Visible)
             {
                 DisplayContainer.Margin = new Thickness(0,30,0,0);
+                if((bool)VerticalBtn.IsChecked)
+                {
+                    SplitModeChanged.Invoke(this,SplitMode.Vertical);
+                }
+                if ((bool)HorizonBtn.IsChecked)
+                {
+                    SplitModeChanged.Invoke(this, SplitMode.Horizontal);
+                }
             }
             else
             {
+                if((bool)VerticalBtn.IsChecked || (bool)HorizonBtn.IsChecked)
+                {
+                    SplitModeChanged.Invoke(this,SplitMode.None);
+                }
                 DisplayContainer.Margin = new Thickness(0);
-            } 
+            }
         }
 
         public void SetCropContainerVisibility(Visibility visibility)

+ 6 - 6
Demo/Examples/Compdfkit_Tools/PDFView/PDFScaling/PDFScalingControl/CPDFScalingControl.xaml.cs

@@ -24,7 +24,7 @@ namespace Compdfkit_Tools.PDFControl
         {
             if (Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.RightCtrl))
             {
-                CPDFViewer pdfViewer = ViewControl.PDFViewTool.GetCPDFViewer();
+                CPDFViewer pdfViewer = ViewControl.GetCPDFViewer();
                 SetZoomTextBoxText(string.Format("{0}", (int)(pdfViewer.GetZoom() * 100)));
             }
         }
@@ -35,13 +35,13 @@ namespace Compdfkit_Tools.PDFControl
             CPDFScalingUI.ScaleIncreaseEvent -= PDFScalingControl_ScaleIncreaseEvent;
             CPDFScalingUI.ScaleDecreaseEvent -= PDFScalingControl_ScaleDecreaseEvent;
             CPDFScalingUI.SetPresetScaleEvent -= CPDFScalingUI_SetPresetScaleEvent;
-            ViewControl.PDFViewTool.GetCPDFViewer().MouseWheelZoomHandler -= PDFControl_MouseWheelZoomHandler;
+            ViewControl.MouseWheelZoomHandler -= PDFControl_MouseWheelZoomHandler;
 
             CPDFScalingUI.SetScaleEvent += PDFScalingControl_SetScaleEvent;
             CPDFScalingUI.ScaleIncreaseEvent += PDFScalingControl_ScaleIncreaseEvent;
             CPDFScalingUI.ScaleDecreaseEvent += PDFScalingControl_ScaleDecreaseEvent;
             CPDFScalingUI.SetPresetScaleEvent += CPDFScalingUI_SetPresetScaleEvent;
-            ViewControl.PDFViewTool.GetCPDFViewer().MouseWheelZoomHandler += PDFControl_MouseWheelZoomHandler;
+            ViewControl.MouseWheelZoomHandler += PDFControl_MouseWheelZoomHandler;
         }
 
         private void CPDFScalingUI_Unloaded(object sender, RoutedEventArgs e)
@@ -50,7 +50,7 @@ namespace Compdfkit_Tools.PDFControl
             CPDFScalingUI.ScaleIncreaseEvent -= PDFScalingControl_ScaleIncreaseEvent;
             CPDFScalingUI.ScaleDecreaseEvent -= PDFScalingControl_ScaleDecreaseEvent;
             CPDFScalingUI.SetPresetScaleEvent -= CPDFScalingUI_SetPresetScaleEvent;
-            ViewControl.PDFViewTool.GetCPDFViewer().MouseWheelZoomHandler -= PDFControl_MouseWheelZoomHandler;
+            ViewControl.MouseWheelZoomHandler -= PDFControl_MouseWheelZoomHandler;
         }
 
         private void PDFScalingControl_ScaleDecreaseEvent(object sender, EventArgs e)
@@ -59,7 +59,7 @@ namespace Compdfkit_Tools.PDFControl
             {
                 return;
             }
-            CPDFViewer pdfViewer = ViewControl.PDFViewTool.GetCPDFViewer();
+            CPDFViewer pdfViewer = ViewControl.GetCPDFViewer();
             if (pdfViewer == null)
             {
                 return;
@@ -90,7 +90,7 @@ namespace Compdfkit_Tools.PDFControl
             {
                 return;
             }
-            CPDFViewer pdfViewer = ViewControl.PDFViewTool.GetCPDFViewer();
+            CPDFViewer pdfViewer = ViewControl.GetCPDFViewer();
             if (pdfViewer == null)
             {
                 return;

+ 30 - 8
Demo/Examples/Compdfkit_Tools/PDFView/PDFViewControl/PDFViewControl.xaml.cs

@@ -36,10 +36,12 @@ namespace Compdfkit_Tools.PDFControl
         public CPDFViewerTool FocusPDFViewTool { get;private set; }
 
         //public event EventHandler SplitPDFViewToolCreated;
-        public event EventHandler SelectedPDFViewToolChanged;
+        public event EventHandler FocusPDFViewToolChanged;
         public event EventHandler<MouseEventObject> MouseLeftButtonDownHandler;
         public event EventHandler<MouseEventObject> MouseLeftButtonUpHandler;
         public event EventHandler<MouseEventObject> MouseMoveHandler;
+        public event EventHandler<ComPDFKitViewer.MouseWheelZoomArgs> MouseWheelZoomHandler;
+        public event EventHandler DrawChanged;
 
         #region Properties
 
@@ -65,29 +67,38 @@ namespace Compdfkit_Tools.PDFControl
 
             PDFViewTool.SizeChanged -= PDFViewTool_SizeChanged;
             PDFViewTool.GetCPDFViewer().MouseWheelZoomHandler -= PDFViewControl_MouseWheelZoomHandler;
+            PDFViewTool.DrawChanged -= PDFViewTool_DrawChanged;
             PDFToolManager.MouseLeftButtonDownHandler -= PDFToolManager_MouseLeftButtonDownHandler;
             PDFToolManager.MouseLeftButtonUpHandler -= PDFToolManager_MouseLeftButtonUpHandler;
             PDFToolManager.MouseMoveHandler -= PDFToolManager_MouseMoveHandler;
 
             PDFViewTool.SizeChanged += PDFViewTool_SizeChanged;
             PDFViewTool.GetCPDFViewer().MouseWheelZoomHandler += PDFViewControl_MouseWheelZoomHandler;
+            PDFViewTool.DrawChanged += PDFViewTool_DrawChanged;
             PDFToolManager.MouseLeftButtonDownHandler += PDFToolManager_MouseLeftButtonDownHandler;
             PDFToolManager.MouseLeftButtonUpHandler += PDFToolManager_MouseLeftButtonUpHandler;
             PDFToolManager.MouseMoveHandler += PDFToolManager_MouseMoveHandler;
 
             splitViewerTool.SizeChanged -= SplitViewerTool_SizeChanged;
             splitViewerTool.GetCPDFViewer().MouseWheelZoomHandler -= SplitPDFViewControl_MouseWheelZoomHandler;
+            splitViewerTool.DrawChanged -= PDFViewTool_DrawChanged;
             splitToolManager.MouseLeftButtonDownHandler -= PDFToolManager_MouseLeftButtonDownHandler;
             splitToolManager.MouseLeftButtonUpHandler -= PDFToolManager_MouseLeftButtonUpHandler;
             splitToolManager.MouseMoveHandler -= PDFToolManager_MouseMoveHandler;
 
             splitViewerTool.SizeChanged += SplitViewerTool_SizeChanged;
             splitViewerTool.GetCPDFViewer().MouseWheelZoomHandler += SplitPDFViewControl_MouseWheelZoomHandler;
+            splitViewerTool.DrawChanged += PDFViewTool_DrawChanged;
             splitToolManager.MouseLeftButtonDownHandler += PDFToolManager_MouseLeftButtonDownHandler;
             splitToolManager.MouseLeftButtonUpHandler += PDFToolManager_MouseLeftButtonUpHandler;
             splitToolManager.MouseMoveHandler += PDFToolManager_MouseMoveHandler;
         }
 
+        private void PDFViewTool_DrawChanged(object sender, EventArgs e)
+        {
+            DrawChanged?.Invoke(sender,e);
+        }
+
         private void PDFToolManager_MouseMoveHandler(object sender, MouseEventObject e)
         {
             MouseMoveHandler?.Invoke(this, e);
@@ -105,12 +116,12 @@ namespace Compdfkit_Tools.PDFControl
 
         private void PDFViewTool_SizeChanged(object sender, SizeChangedEventArgs e)
         {
-            PDFViewTool?.GetCPDFViewer()?.UpDateRenderFrame();
+            PDFViewTool.GetCPDFViewer().UpDateRenderFrame();
         }
 
         private void SplitViewerTool_SizeChanged(object sender, SizeChangedEventArgs e)
         {
-            splitViewerTool?.GetCPDFViewer()?.UpDateRenderFrame();
+            splitViewerTool.GetCPDFViewer().UpDateRenderFrame();
         }
 
         public void InitDocument(string Path)
@@ -132,6 +143,8 @@ namespace Compdfkit_Tools.PDFControl
 
         private void PDFViewControl_MouseWheelZoomHandler(object sender, ComPDFKitViewer.MouseWheelZoomArgs e)
         {
+            FocusPDFViewTool = PDFViewTool;
+            FocusPDFViewToolChanged?.Invoke(this, EventArgs.Empty);
             if (Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.RightCtrl))
             {
                 e.IsZoom = true;
@@ -140,10 +153,13 @@ namespace Compdfkit_Tools.PDFControl
                 PDFViewTool.GetCPDFViewer().SetZoom(CheckZoomLevel(zoom, Convert.ToBoolean(e.WheelBehavior)));
                 PDFViewTool?.GetCPDFViewer()?.UpDateRenderFrame();
             }
+            MouseWheelZoomHandler?.Invoke(this, e);
         }
 
         private void SplitPDFViewControl_MouseWheelZoomHandler(object sender, ComPDFKitViewer.MouseWheelZoomArgs e)
         {
+            FocusPDFViewTool = splitViewerTool;
+            FocusPDFViewToolChanged?.Invoke(this, EventArgs.Empty);
             if (Keyboard.IsKeyDown(Key.LeftCtrl) || Keyboard.IsKeyDown(Key.RightCtrl))
             {
                 e.IsZoom = true;
@@ -152,6 +168,7 @@ namespace Compdfkit_Tools.PDFControl
                 splitViewerTool.GetCPDFViewer().SetZoom(CheckZoomLevel(zoom, Convert.ToBoolean(e.WheelBehavior)));
                 splitViewerTool?.GetCPDFViewer()?.UpDateRenderFrame();
             }
+            MouseWheelZoomHandler?.Invoke(this, e);
         }
 
         public void SetSplitViewMode(SplitMode splitMode)
@@ -185,11 +202,11 @@ namespace Compdfkit_Tools.PDFControl
                     }
                     break;
             }
-            UpdateFrame();
+            UpdateRenderFrame();
             UpdateAnnotFrame();
         }
 
-        public void UpdateFrame()
+        public void UpdateRenderFrame()
         {
             viewerTool?.GetCPDFViewer()?.UpDateRenderFrame();
             splitViewerTool?.GetCPDFViewer()?.UpDateRenderFrame();
@@ -237,7 +254,12 @@ namespace Compdfkit_Tools.PDFControl
         {
             viewerTool?.GetCPDFViewer()?.SetDrawModes(drawMode.DrawMode);
             splitViewerTool?.GetCPDFViewer()?.SetDrawModes(drawMode.DrawMode);
-            UpdateFrame();
+            if (drawMode.DrawMode == DrawModes.Custom)
+            {
+                viewerTool?.GetCPDFViewer().SetPDFBackground(drawMode.CustomColor);
+                splitViewerTool?.GetCPDFViewer().SetPDFBackground(drawMode.CustomColor);
+            }
+            UpdateRenderFrame();
         }
 
         public void SetStampMouseImage(byte[] imageArray,int imageWidth,int imageHeight)
@@ -278,7 +300,7 @@ namespace Compdfkit_Tools.PDFControl
 
         private void RemoveSplitViewerTool()
         {
-            UpdateFrame();
+            UpdateRenderFrame();
             VerticalSplitter.Visibility = Visibility.Collapsed;
             HorizontalSplitter.Visibility = Visibility.Collapsed;
             VerticalView.Visibility = Visibility.Collapsed;
@@ -302,7 +324,7 @@ namespace Compdfkit_Tools.PDFControl
                     FocusPDFViewTool = splitViewerTool;
                     break;
             }
-            SelectedPDFViewToolChanged?.Invoke(this,EventArgs.Empty);
+            FocusPDFViewToolChanged?.Invoke(this,EventArgs.Empty);
         }
 
         #region Private Command Methods