Browse Source

PDFForm(Windows)-Undo Redo功能

zhuyi 1 year ago
parent
commit
2123a1c330

+ 14 - 1
compdfkit_demo_windows/compdfkit/compdfkit-tools/Form/FormBarControl.xaml.cs

@@ -13,6 +13,7 @@ using System.Windows.Controls.Primitives;
 using System.Windows.Documents.DocumentStructures;
 using System.Windows.Media;
 using System.Windows.Shapes;
+using System.Xml.Linq;
 
 namespace compdfkit_tools.Form
 {
@@ -283,7 +284,19 @@ namespace compdfkit_tools.Form
 
         private void UndoRedo_Click(object sender, RoutedEventArgs e)
         {
-
+            if (string.Equals((sender as Button).Tag.ToString(), "Undo"))
+            {
+                ClearToolState(sender as ToggleButton);
+                fromPropertyControl.SetPropertyForType(null, null);
+                pdfViewer.UndoManager.Undo();
+            }
+            else
+            {
+                ClearToolState(sender as ToggleButton);
+                fromPropertyControl.SetPropertyForType(null, null);
+                pdfViewer.UndoManager.Redo();
+            }
+            
         }
 
         #endregion

+ 6 - 2
compdfkit_demo_windows/compdfkit/compdfkit-tools/Form/FromPropertyControl.xaml.cs

@@ -1,4 +1,5 @@
-using compdfkit_tools.Form.Property;
+using compdfkit_tools.Annotation.PDFAnnotationPanel.PDFAnnotationUI;
+using compdfkit_tools.Form.Property;
 using ComPDFKitViewer.AnnotEvent;
 using ComPDFKitViewer.PdfViewer;
 using System;
@@ -38,7 +39,7 @@ namespace compdfkit_tools.Form
         public void SetPropertyForType(WidgetArgs Args, AnnotAttribEvent e) 
         {
             currentPanel = null;
-            if (Args==null||e==null)
+            if (Args==null)
             {
                 SetAnnotationPanel(currentPanel);
                 return;
@@ -76,6 +77,9 @@ namespace compdfkit_tools.Form
                     currentPanel = listBoxProperty;
                     break;
                 case ComPDFKit.PDFAnnotation.Form.C_WIDGET_TYPE.WIDGET_SIGNATUREFIELDS:
+                    CPDFSignatureUI signatureProperty = new CPDFSignatureUI();
+                    //signatureProperty.SetProperty(Args, e);
+                    currentPanel = signatureProperty;
                     break;
                 case ComPDFKit.PDFAnnotation.Form.C_WIDGET_TYPE.WIDGET_UNKNOWN:
                     break;

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

@@ -820,7 +820,9 @@ namespace form_ctrl_demo
         {
             if (e is WidgetSignArgs)
             {
-                var x = 1;
+                FormBarBtn.IsChecked = true;
+                ExpandRightPropertyPanel(fromPropertyControl, Visibility.Visible);
+                fromPropertyControl.SetPropertyForType(e, null);
             }
         }