Browse Source

compdfkit(win) - 完善 Form 项目

weixiangjie 1 year ago
parent
commit
15b20b5012

+ 2 - 0
Demo/Examples/Annotations/Annotations.csproj

@@ -25,6 +25,7 @@
     <DefineConstants>DEBUG;TRACE</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
+    <Prefer32bit>false</Prefer32bit>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
     <PlatformTarget>AnyCPU</PlatformTarget>
@@ -34,6 +35,7 @@
     <DefineConstants>TRACE</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
+    <Prefer32bit>false</Prefer32bit>
   </PropertyGroup>
   <ItemGroup>
     <Reference Include="PresentationFramework.Aero2, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">

+ 1 - 5
Demo/Examples/Compdfkit_Tools/DigitalSignature/DigitalSignatureControl/DigitalSignatureControl.xaml.cs

@@ -111,12 +111,8 @@ namespace Compdfkit_Tools.PDFControl
             PDFViewControl.PDFView.UndoManager.PropertyChanged += UndoManager_PropertyChanged;
             panelState.PropertyChanged -= PanelState_PropertyChanged;
             panelState.PropertyChanged += PanelState_PropertyChanged;
-
         }
-         
-
-
-
+ 
         private void PDFView_WidgetClickHandler(object sender, WidgetArgs e)
         {
             var signatureWidget = (e as WidgetSignArgs).Sign;

+ 1 - 0
Demo/Examples/Compdfkit_Tools/Form/FormControl/FormControl.xaml.cs

@@ -115,6 +115,7 @@ namespace Compdfkit_Tools.PDFControl
             FloatPageTool.InitWithPDFViewer(pdfViewer);
             PDFGrid.Child = PdfViewControl;
 
+            panelState.PropertyChanged -= PanelState_PropertyChanged; 
             panelState.PropertyChanged += PanelState_PropertyChanged; 
         }
 

+ 1 - 0
Demo/Examples/Compdfkit_Tools/PDFView/RegularViewerControl.xaml.cs

@@ -45,6 +45,7 @@ namespace Compdfkit_Tools.PDFView
         public RegularViewerControl()
         {
             InitializeComponent();
+            panelState.PropertyChanged -= PanelState_PropertyChanged;
             panelState.PropertyChanged += PanelState_PropertyChanged;
         }
         

+ 2 - 0
Demo/Examples/DigitalSignature/MainWindow.xaml.cs

@@ -313,6 +313,8 @@ namespace DigitalSignature
             ViewSettingBtnIsChecked = false;
             if(ViewSettingBtn != null)
                 ViewSettingBtn.IsChecked = false;
+            if(RightPanelButton != null)
+                RightPanelButton.IsChecked = false;
             
             if (currentMode == "Viewer")
             {

+ 2 - 0
Demo/Examples/Forms/Forms.csproj

@@ -25,6 +25,7 @@
     <DefineConstants>DEBUG;TRACE</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
+    <Prefer32bit>false</Prefer32bit>
   </PropertyGroup>
   <PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
     <PlatformTarget>AnyCPU</PlatformTarget>
@@ -34,6 +35,7 @@
     <DefineConstants>TRACE</DefineConstants>
     <ErrorReport>prompt</ErrorReport>
     <WarningLevel>4</WarningLevel>
+    <Prefer32bit>false</Prefer32bit>
   </PropertyGroup>
   <ItemGroup>
     <Reference Include="PresentationFramework.Aero2, Version=4.0.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35, processorArchitecture=MSIL">

+ 1 - 1
Demo/Examples/Forms/MainWindow.xaml

@@ -121,7 +121,7 @@
 
                 <ComboBox Name="ModeComboBox" Style="{StaticResource ComboBoxStyle1}" Width="120" Height="26" Grid.Column="1" HorizontalAlignment="Center" FontSize="14" Foreground="#001A4E" SelectionChanged="ComboBox_SelectionChanged">
                     <ComboBoxItem IsSelected="True" Tag="Viewer">Viewer</ComboBoxItem>
-                    <ComboBoxItem IsSelected="True" Tag="Form">Form</ComboBoxItem>
+                    <ComboBoxItem Tag="Form">Form</ComboBoxItem>
                 </ComboBox>
 
                 <StackPanel Orientation="Horizontal" Grid.Column="2">

+ 79 - 66
Demo/Examples/Forms/MainWindow.xaml.cs

@@ -18,6 +18,8 @@ using System.Windows.Controls;
 using System.Windows.Controls.Primitives;
 using System.Windows.Input;
 using System.Windows.Media.Imaging;
+using Compdfkit_Tools.PDFView;
+
 namespace FormViewControl
 {
     /// <summary>
@@ -28,9 +30,12 @@ namespace FormViewControl
         private PDFViewControl pdfViewer;
         private PDFViewControl passwordViewer;
         private FormControl formControl = new FormControl();
+        private RegularViewerControl regularViewerControl = new RegularViewerControl();
+        private CPDFDisplaySettingsControl displaySettingsControl = new CPDFDisplaySettingsControl();
         private CPDFBOTABarControl botaBarControl = new CPDFBOTABarControl(BOTATools.Thumbnail | BOTATools.Outline | BOTATools.Bookmark | BOTATools.Search | BOTATools.Annotation);
-        
+        private PanelState panelState = PanelState.GetInstance();
         private bool _canSave = false;
+        private string currentMode = "Viewer";
         public bool CanSave
         {
 
@@ -42,6 +47,29 @@ namespace FormViewControl
             }
         }
         
+        public bool LeftToolPanelButtonIsChecked
+        {
+            get => panelState.IsLeftPanelExpand;
+            set
+            {
+                panelState.IsLeftPanelExpand = value;
+                OnPropertyChanged();
+            }
+        }
+        
+        public bool ViewSettingBtnIsChecked
+        {
+            get
+            {
+                return (panelState.RightPanel == PanelState.RightPanelState.ViewSettings);
+            }
+            set
+            {
+                panelState.RightPanel = (value) ? PanelState.RightPanelState.ViewSettings : PanelState.RightPanelState.None;
+                OnPropertyChanged();
+            }
+        }
+        
         public MainWindow()
         {
             InitializeComponent();
@@ -64,11 +92,10 @@ namespace FormViewControl
             
             pdfViewer.PDFView.InfoChanged -= PdfViewer_InfoChanged;
             pdfViewer.PDFView.InfoChanged += PdfViewer_InfoChanged;
-            PDFGrid.Child = formControl;
             
             formControl.PdfViewControl = pdfViewer;
             formControl.InitWithPDFViewer(pdfViewer.PDFView);
-            InitialPDFViewControl(formControl.PdfViewControl);
+            InitialPDFViewControl();
 
             formControl.OnCanSaveChanged -= FormControlOnCanSaveChanged;
             formControl.OnCanSaveChanged += FormControlOnCanSaveChanged;
@@ -82,11 +109,13 @@ namespace FormViewControl
             PasswordUI.Closed += PasswordUI_Closed;
             PasswordUI.Canceled += PasswordUI_Canceled;
             PasswordUI.Confirmed += PasswordUI_Confirmed;
-
+            
+            ModeComboBox.SelectedIndex = 1;
+            formControl.SetToolBarContainerVisibility(Visibility.Visible);
             formControl.PdfViewControl.PDFView.ChangeFitMode(FitMode.FitWidth);
             CPDFSaclingControl.InitWithPDFViewer(formControl.PdfViewControl.PDFView);
             CPDFSaclingControl.SetZoomTextBoxText(string.Format("{0}", (int)(formControl.PdfViewControl.PDFView.ZoomFactor * 100)));
-
+            
             ViewSettingBtn.IsChecked = false;
             botaBarControl.InitWithPDFViewer(formControl.PdfViewControl.PDFView);
             botaBarControl.SelectBotaTool(BOTATools.Thumbnail);
@@ -154,7 +183,7 @@ namespace FormViewControl
         
         #region Annotation
 
-        public void InitialPDFViewControl(PDFViewControl newPDFViewer)
+        public void InitialPDFViewControl()
         {
             formControl.ClearAllToolState();
             formControl.ExpandRightPropertyPanel(null, Visibility.Collapsed);
@@ -226,37 +255,59 @@ namespace FormViewControl
 
         private void LeftToolPanelButton_Click(object sender, RoutedEventArgs e)
         {
-            ToggleButton expandBtn = sender as ToggleButton;
-            if (expandBtn != null)
-            {
-                bool isExpand = expandBtn.IsChecked == true;
-                formControl.ExpandLeftPanel(isExpand);
-            }
+            panelState.IsLeftPanelExpand = (sender as ToggleButton).IsChecked == true;
         }
 
         private void ComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
         {
             var item = (sender as ComboBox).SelectedItem as ComboBoxItem;
-            if ((string)item.Content == "Viewer")
+            if (item.Content as string == currentMode)
             {
-                formControl.ClearAllToolState();
-                formControl.SetToolBarContainerVisibility(Visibility.Collapsed);
-                formControl.ExpandRightPropertyPanel(null, Visibility.Collapsed);
-                //formControl.FromPropertyControl.AnnotationCancel();
+                return;
+            }
+            LeftToolPanelButtonIsChecked = false;
+            LeftToolPanelButton.IsChecked = false;
+            ViewSettingBtnIsChecked = false;
+            if(ViewSettingBtn != null)
+                ViewSettingBtn.IsChecked = false;
+            if(RightPanelButton != null)
                 RightPanelButton.IsChecked = false;
-                if (formControl.PdfViewControl != null && formControl.PdfViewControl.PDFView != null)
+
+            panelState.IsLeftPanelExpand = false;
+            if (currentMode == "Viewer")
+            {
+                regularViewerControl.ClearViewerControl();
+            }
+            else if (currentMode == "Form")
+            {
+                formControl.ClearViewerControl();
+            }
+            
+            if ((string)item.Content == "Viewer")
+            {
+                if (regularViewerControl.PdfViewControl != null && regularViewerControl.PdfViewControl.PDFView != null)
                 {
-                    formControl.PdfViewControl.PDFView.SetMouseMode(MouseModes.Viewer);
+                    PDFGrid.Child = regularViewerControl;
+                    regularViewerControl.PdfViewControl.PDFView.SetMouseMode(MouseModes.Viewer);
+                    regularViewerControl.PdfViewControl = pdfViewer;
+                    regularViewerControl.InitWithPDFViewer(pdfViewer.PDFView);
+                    regularViewerControl.SetBOTAContainer(botaBarControl);
+                    regularViewerControl.SetDisplaySettingsControl(displaySettingsControl);
                 }
             }
             else if ((string)item.Content == "Form")
             {
-                formControl.SetToolBarContainerVisibility(Visibility.Visible);
                 if (formControl.PdfViewControl != null && formControl.PdfViewControl.PDFView != null)
                 {
+                    PDFGrid.Child = formControl;
                     formControl.PdfViewControl.PDFView.SetMouseMode(MouseModes.FormEditTool);
+                    formControl.PdfViewControl = pdfViewer;
+                    formControl.InitWithPDFViewer(pdfViewer.PDFView);
+                    formControl.SetBOTAContainer(botaBarControl);
+                    formControl.SetDisplaySettingsControl(displaySettingsControl);
                 }
             }
+            currentMode = item.Content as string;
         }
 
         private void PageInfoBtn_Click(object sender, RoutedEventArgs e)
@@ -269,61 +320,23 @@ namespace FormViewControl
 
         private void ViewSettingBtn_Click(object sender, RoutedEventArgs e)
         {
-            ShowViewSettings();
-        }
-
-        private void ShowViewSettings()
-        {
-            if (ViewSettingBtn != null)
-            {
-                if (ViewSettingBtn.IsChecked == true)
-                {
-                    CPDFDisplaySettingsControl displayPanel = new CPDFDisplaySettingsControl();
-                    displayPanel.InitWithPDFViewer(formControl.PdfViewControl.PDFView);
-                    formControl.SetViewSettings(Visibility.Visible, displayPanel); 
-                    if ((bool)RightPanelButton.IsChecked)
-                    {
-                        RightPanelButton.IsChecked = false;
-                    }
-                }
-                else
-                {
-                    formControl.SetViewSettings(Visibility.Collapsed); 
-                }
-            }
+            panelState.RightPanel =
+                ((sender as ToggleButton).IsChecked == true) ?
+                    PanelState.RightPanelState.ViewSettings : PanelState.RightPanelState.None;
         }
         private void RightPanelButton_Click(object sender, RoutedEventArgs e)
         {
-            ControlRightPanel();
+            panelState.RightPanel =
+                ((sender as ToggleButton).IsChecked == true) ?
+                    PanelState.RightPanelState.PropertyPanel : PanelState.RightPanelState.None;
         }
 
         private void ExpandSearchBtn_Click(object sender, RoutedEventArgs e)
         {
-            formControl.ExpandLeftPanel(true);
+            LeftToolPanelButton.IsChecked = true;
+            panelState.IsLeftPanelExpand = true;
             botaBarControl.SelectBotaTool(BOTATools.Search);
         }
-        
-        private void ControlRightPanel()
-        { 
-            if (RightPanelButton != null)
-            {
-                if (RightPanelButton.IsChecked == true)
-                {
-                    if (formControl.FromPropertyControl != null)
-                    {
-                        formControl.ExpandRightPropertyPanel(formControl.FromPropertyControl, Visibility.Visible);
-                        if ((bool)ViewSettingBtn.IsChecked)
-                        {
-                            ViewSettingBtn.IsChecked = false;
-                        }
-                    }
-                }
-                else
-                {
-                    formControl.ExpandRightPropertyPanel(null, Visibility.Collapsed);
-                }
-            }
-        }
 
         #region Save file
         /// <summary>