Browse Source

compdfkit - 状态切换

liuaoran 1 year ago
parent
commit
595b3ac3b4

+ 1 - 1
compdfkit_demo_windows/compdfkit/annotation-ctrl-demo/MainWindow.xaml.cs

@@ -713,7 +713,7 @@ namespace viewer_ctrl_demo
             //    {
             //        stampArgs.ImagePath = openFileDialog.FileName;
                  
-            //        pdfViewControl.PDFView?.SetMouseMode(MouseModes.AnnotCreate);
+            //        pdfViewControl.PDFView?.SetMouseMode(MouseModes.AnnotCreate);ClearAnnotationBar
             //        pdfViewControl.PDFView?.SetToolParam(stampArgs);
             //        ExpandRightPropertyPanel(null, Visibility.Collapsed);
             //    }

+ 2 - 2
compdfkit_demo_windows/compdfkit/compdfkit/MainPage.xaml

@@ -20,13 +20,13 @@
     </UserControl.Resources>
     <Grid>
         <Grid.RowDefinitions>
-            <RowDefinition Height="40"></RowDefinition>
+            <RowDefinition Height="auto"></RowDefinition>
             <RowDefinition Height="40"></RowDefinition>
             <RowDefinition Height="*"></RowDefinition>
         </Grid.RowDefinitions>
 
         <!--顶部工具栏-->
-        <cpdftools:CPDFTitleBarControl></cpdftools:CPDFTitleBarControl>
+        <cpdftools:CPDFTitleBarControl Visibility="Visible"></cpdftools:CPDFTitleBarControl>
 
         <Grid Grid.Row="1">
             <Grid.ColumnDefinitions>

+ 23 - 3
compdfkit_demo_windows/compdfkit/compdfkit/MainPage.xaml.cs

@@ -96,6 +96,7 @@ namespace compdfkit
 
         public void InitWithFilePath(string filePath)
         {
+
             pdfViewControl = new PDFViewControl();
             pdfViewControl.PDFView.InitDocument(filePath);
         }
@@ -133,7 +134,8 @@ namespace compdfkit
             CPDFSaclingControl.InitWithPDFViewer(pdfViewControl.PDFView);
             CPDFSaclingControl.SetZoomTextBoxText(string.Format("{0}", (int)(pdfViewControl.PDFView.ZoomFactor * 100)));
 
-            pdfAnnotationControl.SetPDFViewer(pdfViewControl.PDFView);
+            InitialPDFViewControl(pdfViewControl);
+
             FloatPageTool.InitWithPDFViewer(pdfViewControl.PDFView);
             BotaSideTool.InitWithPDFViewer(pdfViewControl.PDFView);
             BotaSideTool.SelectBotaTool(BOTATools.Thumbnail);
@@ -142,6 +144,20 @@ namespace compdfkit
             PropertyContainer.Visibility = Visibility.Collapsed;
         }
 
+        public void InitialPDFViewControl(PDFViewControl newPDFViewer)
+        {
+            pdfAnnotationControl.SetPDFViewer(newPDFViewer.PDFView);
+            pdfAnnotationControl.AnnotationCancel();
+            AnnotationBarControl.ClearAllToolState();
+            ExpandRightPropertyPanel(null, Visibility.Collapsed);
+            pdfAnnotationControl.ClearAnnotationBar += PdfAnnotationControl_ClearAnnotationBar;
+        }
+
+        private void PdfAnnotationControl_ClearAnnotationBar(object sender, EventArgs e)
+        {
+            AnnotationBarControl.ClearAllToolState();
+        }
+
         #region Load Document
         /// <summary>
         /// InfoChanged
@@ -976,10 +992,13 @@ namespace compdfkit
                 // Clear the ToolBar
                 // Collapse the ToolBar
                 // Clear And Collapse the property panel.
+                // Change the mousemode
                 case "Annotation":
                     AnnotationBarControl.Visibility = Visibility.Collapsed;
                     AnnotationBarControl.ClearAllToolState();
+                    pdfAnnotationControl.ClearPanel();
                     ExpandRightPropertyPanel(null, Visibility.Collapsed);
+                    pdfViewControl.PDFView?.SetMouseMode(MouseModes.PanTool);
 
                     break;
 
@@ -1090,7 +1109,7 @@ namespace compdfkit
             if (e != CPDFAnnotationType.Audio && e != CPDFAnnotationType.Image)
             {
                 ExpandRightPropertyPanel(pdfAnnotationControl, Visibility.Visible);
-                AnnotationBarBtn.IsChecked = true;
+                RightPanelButton.IsChecked = true;
             }
         }
 
@@ -1167,7 +1186,7 @@ namespace compdfkit
                 }
             }
         }
-
+         
         private void UndoBtn_Click(object sender, RoutedEventArgs e)
         {
             if (pdfViewControl != null && pdfViewControl.PDFView != null)
@@ -1187,6 +1206,7 @@ namespace compdfkit
         private void UserControl_Loaded(object sender, RoutedEventArgs e)
         {
             pdfAnnotationControl = new CPDFAnnotationControl();
+            BotaSideTool.AddBOTAContent(BOTATools.Thumbnail | BOTATools.Outline | BOTATools.Bookmark | BOTATools.Search | BOTATools.Annotation);
             LoadDocument();
         }
 

+ 10 - 2
compdfkit_demo_windows/compdfkit/compdfkit/MainWindow.xaml.cs

@@ -86,9 +86,10 @@ namespace compdfkit
 
         private void TabControlLoadDocument(string filePath)
         {
-            foreach (TabItemExt item in TabControl.Items)
+
+            if (App.OpenedFilePathList.Contains(filePath.ToLower()))
             {
-                if (item.Tag != null && item.Tag.ToString() == filePath)
+                foreach (TabItemExt item in TabControl.Items)
                 {
                     item.IsSelected = true; // 如果存在相同的 Tag,则选中对应的 tabItem
                     return;
@@ -248,10 +249,13 @@ namespace compdfkit
                 if (result == MessageBoxResult.Yes)
                 {
                     mainPage.SaveFile();
+                    App.OpenedFilePathList.Remove((dragablzItem.Content as TabItemExt).Tag.ToString());
                     tabControl.Items.Remove(dragablzItem.Content);
+
                 }
                 else if (result == MessageBoxResult.No)
                 {
+                    App.OpenedFilePathList.Remove((dragablzItem.Content as TabItemExt).Tag.ToString());
                     tabControl.Items.Remove(dragablzItem.Content);
                 }
                 else
@@ -261,6 +265,7 @@ namespace compdfkit
             }
             else
             {
+                App.OpenedFilePathList.Remove((dragablzItem.Content as TabItemExt).Tag.ToString());
                 tabControl.Items.Remove(dragablzItem.Content);
             }
 
@@ -324,11 +329,13 @@ namespace compdfkit
                     if (result == MessageBoxResult.Yes)
                     {
                         mainPage.SaveFile();
+                        App.OpenedFilePathList.Remove(item.Tag.ToString());
                         TabControl.Items.Remove(item);
                         count--;
                     }
                     else if (result == MessageBoxResult.No)
                     {
+                        App.OpenedFilePathList.Remove(item.Tag.ToString());
                         TabControl.Items.Remove(item);
                         count--;
                     }
@@ -339,6 +346,7 @@ namespace compdfkit
                 }
                 else
                 {
+                    App.OpenedFilePathList.Remove(item.Tag.ToString());
                     TabControl.Items.Remove(item);
                     count--;
                 }