Browse Source

批量删除,拖动添加

liyijie 2 years ago
parent
commit
0287e9079e
19 changed files with 971 additions and 536 deletions
  1. 53 52
      PDF Office/App.xaml.cs
  2. 1 1
      PDF Office/Model/Dialog/HomePageToolsDialogs/HomePageBatchProcessing/HomePageBatchProcessingDialogModel.cs
  3. 8 0
      PDF Office/PDF Office.csproj
  4. 62 0
      PDF Office/Styles/RadioButtonStyle.xaml
  5. 1 1
      PDF Office/ViewModels/Dialog/HomePageToolsDialogs/HomePageBatchProcessing/HomePageBatchProcessingDialogViewModel.cs
  6. 9 0
      PDF Office/ViewModels/Dialog/HomePageToolsDialogs/HomePageBatchProcessing/HomePageCompressDialogViewModel.cs
  7. 9 0
      PDF Office/ViewModels/Dialog/HomePageToolsDialogs/HomePageBatchProcessing/HomePageConverter/HomePageConverterDialogViewModel.cs
  8. 124 16
      PDF Office/ViewModels/Dialog/HomePageToolsDialogs/HomePageBatchProcessing/HomePageRemoveDialogViewModel.cs
  9. 9 0
      PDF Office/ViewModels/Dialog/HomePageToolsDialogs/HomePageBatchProcessing/HomePageSetPasswordDialogViewModel.cs
  10. 51 81
      PDF Office/Views/Dialog/HomePageToolsDialogs/HomePageBatchProcessing/HomePageBatchProcessingDialog.xaml
  11. 14 180
      PDF Office/Views/Dialog/HomePageToolsDialogs/HomePageBatchProcessing/HomePageBatchProcessingDialog.xaml.cs
  12. 55 46
      PDF Office/Views/Dialog/HomePageToolsDialogs/HomePageBatchProcessing/HomePageCompressDialog.xaml
  13. 96 9
      PDF Office/Views/Dialog/HomePageToolsDialogs/HomePageBatchProcessing/HomePageCompressDialog.xaml.cs
  14. 47 39
      PDF Office/Views/Dialog/HomePageToolsDialogs/HomePageBatchProcessing/HomePageConverter/HomePageConverterDialog.xaml
  15. 96 8
      PDF Office/Views/Dialog/HomePageToolsDialogs/HomePageBatchProcessing/HomePageConverter/HomePageConverterDialog.xaml.cs
  16. 60 49
      PDF Office/Views/Dialog/HomePageToolsDialogs/HomePageBatchProcessing/HomePageRemoveDialog.xaml
  17. 132 2
      PDF Office/Views/Dialog/HomePageToolsDialogs/HomePageBatchProcessing/HomePageRemoveDialog.xaml.cs
  18. 47 39
      PDF Office/Views/Dialog/HomePageToolsDialogs/HomePageBatchProcessing/HomePageSetPasswordDialog.xaml
  19. 97 13
      PDF Office/Views/Dialog/HomePageToolsDialogs/HomePageBatchProcessing/HomePageSetPasswordDialog.xaml.cs

+ 53 - 52
PDF Office/App.xaml.cs

@@ -38,16 +38,16 @@ using PDF_Office.Views.FillAndSign.PropertyPanel;
 using PDF_Office.Views.PropertyPanel.ViewModular;
 using PDF_Office.Views.Dialog.HomePageToolsDialogs.HomePageBatchProcessing;
 using PDF_Office.Views.Dialog.ConverterDialogs;
-
+
 using PDF_Office.Helper;
-
+
 using PDF_Office.Views.Dialog.HomePageToolsDialogs.HomePageBatchProcessing.HomePageConverter;
-using PDF_Office.Views.EditTools.Watermark;
+using PDF_Office.Views.EditTools.Watermark;
 using PDF_Office.Views.EditTools.Background;
 using PDF_Office.Views.EditTools.Bates;
 using PDF_Office.Views.EditTools.HeaderFooter;
 using PDF_Office.Views.EditTools.Redaction;
-using PDF_Office.Views.Form;
+using PDF_Office.Views.Form;
 
 namespace PDF_Office
 {
@@ -62,8 +62,8 @@ namespace PDF_Office
 
         public static List<string> OpenedFileList = new List<string>();
 
-        public static CacheFilePath CachePath;
-
+        public static CacheFilePath CachePath;
+
         public static bool IsFirstOpen = true;
         public static bool IsBookMode = false;
 
@@ -76,41 +76,41 @@ namespace PDF_Office
         var countryCode = RegionInfo.CurrentRegion.TwoLetterISORegionName;//上传国家信息
         AppCenter.SetCountryCode(countryCode);
 #endif
-        }
-
-        private void InitSettings()
-        {
-            if (Settings.Default.RecentOpenFiles == null)
-                Settings.Default.RecentOpenFiles = new RecentOpenFiles();
-
-            if (Settings.Default.AppProperties == null)
-                Settings.Default.AppProperties = new PDFSettings.APPSettingProperties();
-
-            if (Settings.Default.AllPDFToolsList == null)
-                Settings.Default.AllPDFToolsList = new PDFSettings.AllPDFToolsList();
-
-            if (Settings.Default.QuickPDFToolsList == null)
-                Settings.Default.QuickPDFToolsList = new PDFSettings.QuickPDFToolsList();
-        }
-
-        protected override void OnStartup(StartupEventArgs e)
-        {
+        }
+
+        private void InitSettings()
+        {
+            if (Settings.Default.RecentOpenFiles == null)
+                Settings.Default.RecentOpenFiles = new RecentOpenFiles();
+
+            if (Settings.Default.AppProperties == null)
+                Settings.Default.AppProperties = new PDFSettings.APPSettingProperties();
+
+            if (Settings.Default.AllPDFToolsList == null)
+                Settings.Default.AllPDFToolsList = new PDFSettings.AllPDFToolsList();
+
+            if (Settings.Default.QuickPDFToolsList == null)
+                Settings.Default.QuickPDFToolsList = new PDFSettings.QuickPDFToolsList();
+        }
+
+        protected override void OnStartup(StartupEventArgs e)
+        {
             LicenseVerify();
 
             InitSettings();
 
-            CachePath = CacheFilePath.Instance;
-            //清除临时文件
-            CacheFilePath.Instance.ClearDeleteFiles();
-
+            CachePath = CacheFilePath.Instance;
+            //清除临时文件
+            CacheFilePath.Instance.ClearDeleteFiles();
+
             try
             {
                 DirectoryInfo info = new DirectoryInfo(CurrentPath);
-                //避免因存在同名文件,导致无法创建文件夹
+                //避免因存在同名文件,导致无法创建文件夹
                 if (File.Exists(CurrentPath))
-                {
+                {
                     File.Delete(CurrentPath);
-                }
+                }
                 if (!info.Exists)
                 {
                     info.Create();
@@ -120,7 +120,7 @@ namespace PDF_Office
             {
             }
 
-            base.OnStartup(e);
+            base.OnStartup(e);
         }
 
         /// <summary>
@@ -147,17 +147,17 @@ namespace PDF_Office
             containerRegistry.RegisterForNavigation<PageEditContent>();
             containerRegistry.RegisterForNavigation<BottomToolContent>();
             containerRegistry.RegisterForNavigation<ToolsBarContent>();
-            containerRegistry.RegisterForNavigation<TextEditToolContent>();
+            containerRegistry.RegisterForNavigation<TextEditToolContent>();
             containerRegistry.RegisterForNavigation<AnnotToolContent>();
             containerRegistry.RegisterForNavigation<BookmarkContent>();
-            containerRegistry.RegisterForNavigation<SearchContent>();
-            containerRegistry.RegisterForNavigation<OutLineControl>();
+            containerRegistry.RegisterForNavigation<SearchContent>();
+            containerRegistry.RegisterForNavigation<OutLineControl>();
             containerRegistry.RegisterForNavigation<ViewModularContent>();
             containerRegistry.RegisterForNavigation<SplitScreenContent>();
             containerRegistry.RegisterForNavigation<ThemesContent>();
             containerRegistry.RegisterForNavigation<ReadModeContent>();
-            containerRegistry.RegisterForNavigation<AnnotationContent>();
-            containerRegistry.RegisterForNavigation<ReadViewContent>();
+            containerRegistry.RegisterForNavigation<AnnotationContent>();
+            containerRegistry.RegisterForNavigation<ReadViewContent>();
 
 
             containerRegistry.RegisterForNavigation<HomePagePrinterDocumentContent>();
@@ -167,6 +167,7 @@ namespace PDF_Office
             containerRegistry.RegisterForNavigation<HomePagePrinterModBookletContent>();
             containerRegistry.RegisterForNavigation<HomePageCompressDialog>();
             containerRegistry.RegisterForNavigation<HomePageSetPasswordDialog>();
+            containerRegistry.RegisterForNavigation<HomePageRemoveDialog>();
             containerRegistry.RegisterForNavigation<ConverterBarContent>();
             containerRegistry.RegisterForNavigation<HomePageConverterDialog>();
             containerRegistry.RegisterForNavigation<HomePageConverterCSV>();
@@ -196,7 +197,7 @@ namespace PDF_Office
             containerRegistry.RegisterForNavigation<LinkAnnotProperty>();
             containerRegistry.RegisterForNavigation<SharpsAnnotProperty>();
             containerRegistry.RegisterForNavigation<StampAnnotProperty>();
-            containerRegistry.RegisterForNavigation<SignatureAnnotProperty>();
+            containerRegistry.RegisterForNavigation<SignatureAnnotProperty>();
             containerRegistry.RegisterForNavigation<TextAnnotProperty>();
             containerRegistry.RegisterForNavigation<TextEditProperty>();
             containerRegistry.RegisterForNavigation<BatesContent>();
@@ -214,14 +215,14 @@ namespace PDF_Office
             containerRegistry.RegisterForNavigation<DateFillProperty>();
             containerRegistry.RegisterForNavigation<ShapFillProperty>();
             containerRegistry.RegisterForNavigation<TextFillProperty>();
-            //Form表单
-            containerRegistry.RegisterForNavigation<FormsToolContent>();
-            containerRegistry.RegisterForNavigation<TextFieldProperty>();
-            containerRegistry.RegisterForNavigation<ButtonProperty>();
-            containerRegistry.RegisterForNavigation<CheckBoxProperty>();
-            containerRegistry.RegisterForNavigation<ListBoxProperty>();
-            containerRegistry.RegisterForNavigation<RadioButtonProperty>();
-            containerRegistry.RegisterForNavigation<SignProperty>();
+            //Form表单
+            containerRegistry.RegisterForNavigation<FormsToolContent>();
+            containerRegistry.RegisterForNavigation<TextFieldProperty>();
+            containerRegistry.RegisterForNavigation<ButtonProperty>();
+            containerRegistry.RegisterForNavigation<CheckBoxProperty>();
+            containerRegistry.RegisterForNavigation<ListBoxProperty>();
+            containerRegistry.RegisterForNavigation<RadioButtonProperty>();
+            containerRegistry.RegisterForNavigation<SignProperty>();
 
             #endregion 注册内容组件
 
@@ -244,8 +245,8 @@ namespace PDF_Office
             containerRegistry.RegisterDialog<HomePagePrinterPaperSettingsDialog>(DialogNames.HomePagePrinterPaperSettingsDialog);
             containerRegistry.RegisterDialog<HomePagePictureToPDFDialog>(DialogNames.HomePagePictureToPDFDialog);
             containerRegistry.RegisterDialog<HomePageBatchProcessingDialog>(DialogNames.HomePageBatchProcessingDialog);
-            containerRegistry.RegisterDialog<DynamicPropertyDialog>(DialogNames.DynamicPropertyDialog);
-            containerRegistry.RegisterDialog<CustomCreateDialog>(DialogNames.CustomCreateDialog);
+            containerRegistry.RegisterDialog<DynamicPropertyDialog>(DialogNames.DynamicPropertyDialog);
+            containerRegistry.RegisterDialog<CustomCreateDialog>(DialogNames.CustomCreateDialog);
             containerRegistry.RegisterDialog<ConverterCSVDialog>(DialogNames.ConverterCSVDialog);
             containerRegistry.RegisterDialog<ConverterPPTDialog>(DialogNames.ConverterPPTDialog);
             containerRegistry.RegisterDialog<ConverterTextDialog>(DialogNames.ConverterTextDialog);
@@ -255,7 +256,7 @@ namespace PDF_Office
             containerRegistry.RegisterDialog<ConverterRTFDialog>(DialogNames.ConverterRTFDialog);
             containerRegistry.RegisterDialog<ConverterExcelDialog>(DialogNames.ConverterExcelDialog);
             containerRegistry.RegisterDialog<ConverterProgressBarDialog>(DialogNames.ConverterProgressBarDialog);
-            containerRegistry.RegisterDialog<ScreenAnnotationDialog>(DialogNames.ScreenAnnotationDialog);
+            containerRegistry.RegisterDialog<ScreenAnnotationDialog>(DialogNames.ScreenAnnotationDialog);
 
             #endregion 注册弹窗
         }
@@ -299,8 +300,8 @@ namespace PDF_Office
 
             try
             {
-                LicenseErrorCode verifyResult = CPDFSDKVerifier.LicenseVerify(devKey, devSecret);
-                if (verifyResult != LicenseErrorCode.LICENSE_ERR_SUCCESS)
+                LicenseErrorCode verifyResult = CPDFSDKVerifier.LicenseVerify(devKey, devSecret);
+                if (verifyResult != LicenseErrorCode.LICENSE_ERR_SUCCESS)
                     return false;
             }
             catch { }

+ 1 - 1
PDF Office/Model/Dialog/HomePageToolsDialogs/HomePageBatchProcessing/HomePageBatchProcessingDialogModel.cs

@@ -12,7 +12,7 @@ namespace PDF_Office.Model.Dialog.HomePageToolsDialogs.HomePageBatchProcessing
 
         public static List<string> FilePaths=new List<string>();
 
-        public static List<string> GetBatchProcessing = new List<string> { "HomePageConverterDialog", "HomePageCompressDialog", "HomePageSetPasswordDialog", "HomePageWatermarkDialog", "HomePageBackgroundDialog", "HomePageHeaderFooterDialog", "HomePageBatesDialog", "HomePageDeleteSafetySettintgsDialog" };
+        public static List<string> GetBatchProcessing = new List<string> { "HomePageConverterDialog", "HomePageCompressDialog", "HomePageSetPasswordDialog", "HomePageWatermarkDialog", "HomePageBackgroundDialog", "HomePageHeaderFooterDialog", "HomePageBatesDialog", "HomePageRemoveDialog" };
 
     }
 }

+ 8 - 0
PDF Office/PDF Office.csproj

@@ -339,6 +339,7 @@
       <DesignTime>True</DesignTime>
       <AutoGen>True</AutoGen>
     </Compile>
+    <Compile Include="ViewModels\Dialog\HomePageToolsDialogs\HomePageBatchProcessing\HomePageRemoveDialogViewModel.cs" />
     <Compile Include="ViewModels\Dialog\HomePageToolsDialogs\HomePagePrinter\HomePagePrinterDocumentContentViewModel.cs" />
     <Compile Include="ViewModels\Dialog\HomePageToolsDialogs\HomePagePrinter\HomePagePrinterPaperSettingsDialogViewModel.cs" />
     <Compile Include="ViewModels\EditTools\Bates\BatesContentViewModel.cs" />
@@ -542,6 +543,9 @@
     <Compile Include="Views\Dialog\HomePageToolsDialogs\HomePageBatchProcessing\HomePageConverter\HomePageConverterWord.xaml.cs">
       <DependentUpon>HomePageConverterWord.xaml</DependentUpon>
     </Compile>
+    <Compile Include="Views\Dialog\HomePageToolsDialogs\HomePageBatchProcessing\HomePageRemoveDialog.xaml.cs">
+      <DependentUpon>HomePageRemoveDialog.xaml</DependentUpon>
+    </Compile>
     <Compile Include="Views\Dialog\HomePageToolsDialogs\HomePageBatchProcessing\HomePageSetPasswordDialog.xaml.cs">
       <DependentUpon>HomePageSetPasswordDialog.xaml</DependentUpon>
     </Compile>
@@ -1069,6 +1073,10 @@
       <SubType>Designer</SubType>
       <Generator>MSBuild:Compile</Generator>
     </Page>
+    <Page Include="Views\Dialog\HomePageToolsDialogs\HomePageBatchProcessing\HomePageRemoveDialog.xaml">
+      <Generator>MSBuild:Compile</Generator>
+      <SubType>Designer</SubType>
+    </Page>
     <Page Include="Views\Dialog\HomePageToolsDialogs\HomePagePrinter\HomePagePrinterDocumentContent.xaml">
       <SubType>Designer</SubType>
       <Generator>MSBuild:Compile</Generator>

+ 62 - 0
PDF Office/Styles/RadioButtonStyle.xaml

@@ -370,4 +370,66 @@
             </Setter.Value>
         </Setter>
     </Style>
+
+    <Style x:Key="BatchButton" TargetType="{x:Type RadioButton}">
+        <Setter Property="Foreground" Value="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}"/>
+        <Setter Property="Background" Value="#F7F8FA"/>
+        <Setter Property="BorderThickness" Value="0"/>
+        <Setter Property="Cursor" Value="Hand"/>
+        <Setter Property="Template">
+            <Setter.Value>
+                <ControlTemplate TargetType="{x:Type RadioButton}">
+                    <ControlTemplate.Resources>
+                        <Storyboard x:Key="Storyboard1">
+                            <ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)" Storyboard.TargetName="bd">
+                                <EasingColorKeyFrame KeyTime="0" Value="White"/>
+                                <EasingColorKeyFrame KeyTime="0:0:0.3" Value="#FFAFAFAF"/>
+                            </ColorAnimationUsingKeyFrames>
+                        </Storyboard>
+                        <Storyboard x:Key="Storyboard2">
+                            <ColorAnimationUsingKeyFrames Storyboard.TargetProperty="(Panel.Background).(SolidColorBrush.Color)" Storyboard.TargetName="bd">
+                                <EasingColorKeyFrame KeyTime="0" Value="#FFAFAFAF"/>
+                                <EasingColorKeyFrame KeyTime="0:0:0.5" Value="#D3D3D3"/>
+                            </ColorAnimationUsingKeyFrames>
+                        </Storyboard>
+                    </ControlTemplate.Resources>
+                    <BulletDecorator Background="Transparent">
+                        <Border x:Name="bd"  HorizontalAlignment="Center" Background="White" CornerRadius="5">
+                            <Border.OpacityMask>
+                                <LinearGradientBrush EndPoint="0.5,1" StartPoint="0.5,0">
+                                    <GradientStop Color="Black" Offset="0"/>
+                                    <GradientStop Color="White" Offset="1"/>
+                                </LinearGradientBrush>
+                            </Border.OpacityMask>
+                            <ContentPresenter Width="{TemplateBinding Width}" Height="{TemplateBinding Height}" HorizontalAlignment="{TemplateBinding HorizontalContentAlignment}" Margin="{TemplateBinding Padding}" RecognizesAccessKey="True" VerticalAlignment="{TemplateBinding VerticalContentAlignment}"/>
+                        </Border>
+                    </BulletDecorator>
+                    <ControlTemplate.Triggers>
+                        <Trigger Property="IsEnabled" Value="false">
+                            <Setter TargetName="bd" Property="Background" Value="gray" />
+                        </Trigger>
+                        <Trigger Property="IsChecked" Value="false">
+                            <Setter TargetName="bd" Property="Background" Value="{x:Null}" />
+                        </Trigger>
+                        <Trigger Property="IsChecked" Value="true">
+                            <Trigger.EnterActions>
+                                <BeginStoryboard x:Name="Storyboard2_BeginStoryboard" Storyboard="{StaticResource Storyboard2}"/>
+                            </Trigger.EnterActions>
+                            <Setter TargetName="bd" Property="Background" Value="#FF606060" />
+                        </Trigger>
+                        <MultiTrigger>
+                            <MultiTrigger.EnterActions>
+                                <BeginStoryboard Storyboard="{StaticResource Storyboard1}"/>
+                            </MultiTrigger.EnterActions>
+                            <MultiTrigger.Conditions>
+                                <Condition Property="IsMouseOver" Value="True"/>
+                                <Condition Property="IsChecked" Value="False"/>
+                            </MultiTrigger.Conditions>
+                            <Setter TargetName="bd" Property="Background" Value="Red" />
+                        </MultiTrigger>
+                    </ControlTemplate.Triggers>
+                </ControlTemplate>
+            </Setter.Value>
+        </Setter>
+    </Style>
 </ResourceDictionary>

+ 1 - 1
PDF Office/ViewModels/Dialog/HomePageToolsDialogs/HomePageBatchProcessing/HomePageBatchProcessingDialogViewModel.cs

@@ -54,7 +54,7 @@ namespace PDF_Office.ViewModels.Dialog.HomePageToolsDialogs.HomePageBatchProcess
         }
         #region 逻辑函数
         public void ChangeBatchProcessing(string index) {
-            if (index=="0"||index =="1"||index=="2") { 
+            if (index=="0"||index =="1"||index=="2"||index=="7") { 
             NavigationParameters param = new NavigationParameters();
             param.Add(ParameterNames.FilePath, HomePageBatchProcessingDialogModel.FilePaths);
             BatchProcessingVisible = Visibility.Collapsed;

+ 9 - 0
PDF Office/ViewModels/Dialog/HomePageToolsDialogs/HomePageBatchProcessing/HomePageCompressDialogViewModel.cs

@@ -205,6 +205,15 @@ namespace PDF_Office.ViewModels.Dialog.HomePageToolsDialogs.HomePageBatchProcess
             }
         }
 
+        public void addPDFFiles(string filename)
+        {
+            fileNames.Add(filename);
+            RemoveExcess(ref fileNames);
+            SetCompressGridIsEnabled = "True";
+            AddFileVisibility = Visibility.Collapsed;
+            updateListview("待确定");
+        }
+
         /// <summary>
         /// 删除重复的文件
         /// </summary>

+ 9 - 0
PDF Office/ViewModels/Dialog/HomePageToolsDialogs/HomePageBatchProcessing/HomePageConverter/HomePageConverterDialogViewModel.cs

@@ -303,6 +303,15 @@ namespace PDF_Office.ViewModels.Dialog.HomePageToolsDialogs.HomePageBatchProcess
             }
         }
 
+        public void addPDFFiles(string filename)
+        {
+            fileNames.Add(filename);
+            RemoveExcess(ref fileNames);
+            SetConverterGridIsEnabled = "True"; 
+            AddFileVisibility = Visibility.Collapsed;
+            updateListview("待确定");
+        }
+
         /// <summary>
         /// 删除重复的文件
         /// </summary>

+ 124 - 16
PDF Office/ViewModels/Dialog/HomePageToolsDialogs/HomePageBatchProcessing/HomePageRemoveDialogViewModel.cs

@@ -1,10 +1,13 @@
 using ComPDFKit.PDFDocument;
+using ComPDFKitViewer.PdfViewer;
 using PDF_Office.CustomControl;
 using PDF_Office.Model;
 using PDF_Office.Model.Dialog.HomePageToolsDialogs.HomePageBatchProcessing;
+using PDF_Office.Model.Dialog.ToolsDialogs.SaftyDialogs;
 using Prism.Commands;
 using Prism.Mvvm;
 using Prism.Regions;
+using Prism.Services.Dialogs;
 using System;
 using System.Collections.Generic;
 using System.Data;
@@ -22,6 +25,8 @@ namespace PDF_Office.ViewModels.Dialog.HomePageToolsDialogs.HomePageBatchProcess
     {
 
         #region 参数和属性
+        public IDialogService dialogs;
+
         private List<string> fileNames;
 
         private CPDFDocument tempDocument;
@@ -100,8 +105,8 @@ namespace PDF_Office.ViewModels.Dialog.HomePageToolsDialogs.HomePageBatchProcess
             }
         }
 
-        private string securityIsRemove = "False";
-        public string SecurityIsRemove
+        private bool securityIsRemove = false;
+        public bool SecurityIsRemove
         {
             get { return securityIsRemove; }
             set
@@ -110,8 +115,8 @@ namespace PDF_Office.ViewModels.Dialog.HomePageToolsDialogs.HomePageBatchProcess
             }
         }
 
-        private string watermarkIsRemove = "False";
-        public string WatermarkIsRemove
+        private bool watermarkIsRemove = false;
+        public bool WatermarkIsRemove
         {
             get { return watermarkIsRemove; }
             set
@@ -120,8 +125,8 @@ namespace PDF_Office.ViewModels.Dialog.HomePageToolsDialogs.HomePageBatchProcess
             }
         }
 
-        private string backgroundIsRemove = "False";
-        public string BackgroundIsRemove
+        private bool backgroundIsRemove = false;
+        public bool BackgroundIsRemove
         {
             get { return backgroundIsRemove; }
             set
@@ -130,8 +135,8 @@ namespace PDF_Office.ViewModels.Dialog.HomePageToolsDialogs.HomePageBatchProcess
             }
         }
 
-        private string headerFooterIsRemove = "False";
-        public string HeaderFooterIsRemove
+        private bool headerFooterIsRemove = false;
+        public bool HeaderFooterIsRemove
         {
             get { return headerFooterIsRemove; }
             set
@@ -140,8 +145,8 @@ namespace PDF_Office.ViewModels.Dialog.HomePageToolsDialogs.HomePageBatchProcess
             }
         }
 
-        private string batesIsRemove = "False";
-        public string BatesIsRemove
+        private bool batesIsRemove = false;
+        public bool BatesIsRemove
         {
             get { return batesIsRemove; }
             set
@@ -161,8 +166,9 @@ namespace PDF_Office.ViewModels.Dialog.HomePageToolsDialogs.HomePageBatchProcess
         public DelegateCommand OptionsRemoveCommand { get; set; }
 
         #endregion
-        public HomePageRemoveDialogViewModel()
+        public HomePageRemoveDialogViewModel(IDialogService dialogService)
         {
+            dialogs = dialogService;
             PDFDataTable.Columns.Add("FileName");
             PDFDataTable.Columns.Add("FileSize");
             PDFDataTable.Columns.Add("FileState");
@@ -172,7 +178,50 @@ namespace PDF_Office.ViewModels.Dialog.HomePageToolsDialogs.HomePageBatchProcess
             OptionsRemoveCommand = new DelegateCommand(OptionsRemove);
         }
         #region 逻辑函数
-       
+
+        private bool CheckHaveAllPermissions(CPDFDocument document)
+        {
+            CPDFPermissionsInfo permissionsInfo = document.GetPermissionsInfo();
+            if (permissionsInfo.AllowsDocumentChanges &&
+                permissionsInfo.AllowsPrinting &&
+                permissionsInfo.AllowsHighQualityPrinting &&
+                permissionsInfo.AllowsCopying &&
+                //permissionsInfo.AllowsDocumentAssembly&&
+                //TODO: 这个权限有问题
+                permissionsInfo.AllowsCommenting)
+            {
+                return true;
+            }
+            else
+            {
+                return false;
+            }
+        }
+
+        private DeleteSafetySettintgsModel.EnumNeedPassword CheckNeedPassword(CPDFDocument document)
+        {
+            if (document.IsLocked)
+            {
+                return DeleteSafetySettintgsModel.EnumNeedPassword.StatusVerifyPassword;
+            }
+            else { }
+            if (document.IsEncrypted)
+            {
+                if (CheckHaveAllPermissions(document))
+                {
+                    return DeleteSafetySettintgsModel.EnumNeedPassword.StatusDirectDescrypt;
+                }
+                else
+                {
+                    return DeleteSafetySettintgsModel.EnumNeedPassword.StatusVerifyPassword;
+                }
+            }
+            else
+            {
+                return DeleteSafetySettintgsModel.EnumNeedPassword.StatusCannotDecrypt;
+            }
+        }
+
         private void OptionsRemove()
         {
             OptionsRemoveGridIsEnabled = "False";
@@ -180,18 +229,68 @@ namespace PDF_Office.ViewModels.Dialog.HomePageToolsDialogs.HomePageBatchProcess
             fileNamesIndex = 0;
             foreach (var filename in fileNames)
             {
+                PDFDataTable.Rows[fileNamesIndex]["FileState"] = "待完成";
                 CPDFDocument document = CPDFDocument.InitWithFilePath(filename);
+                
                 if (document == null)
                 {
                     PDFDataTable.Rows[fileNamesIndex]["FileState"] = "文件出错";
                     continue;
                 }
                 FileInfo fileinfo = new FileInfo(filename);
-                
+                if (document.IsLocked)
+                {
+                    DialogParameters value = new DialogParameters();
+                    value.Add(ParameterNames.PDFDocument, document);
+                    dialogs.ShowDialog(DialogNames.VerifyPassWordDialog, value, e =>
+                    {
+                        if (e.Result == ButtonResult.OK)
+                        {
+                            if (e.Parameters.ContainsKey(ParameterNames.PassWord) && e.Parameters.GetValue<string>(ParameterNames.PassWord) != null)
+                            {
+                              
+                            }
+                        }
+                    });
+
+                    if (document.IsLocked)
+                    {
+                        //未成功解密文档时,释放Document对象,返回
+                        document.Release();
+                        PDFDataTable.Rows[fileNamesIndex]["FileState"] = "文件出错";
+                        continue;
+                    }
+                }
+                if (WatermarkIsRemove)
+                {
+                    document.DeleteWatermarks();
+                }
+                if (BackgroundIsRemove)
+                {
+                    document.GetBackground().Clear();
+                }
+                if (HeaderFooterIsRemove)
+                {
+                    document.GetHeaderFooter().Clear();
+                }
+                if (BatesIsRemove)
+                {
+                    document.GetBates().Clear();
+                }
+                if (SecurityIsRemove)
+                {
+                    document.Descrypt(filename + "_Remove.pdf");
+
+                }
+                else
+                {
+                    document.WriteToFilePath(filename + "_Remove.pdf");
+                }
+                PDFDataTable.Rows[fileNamesIndex]["FileState"] = "完成";
+                fileNamesIndex++;
+                document.Release();
             }
             OptionsRemoveGridIsEnabled = "True";
-            MessageBoxEx.Show("已完成");
-
         }
         #endregion
 
@@ -214,6 +313,15 @@ namespace PDF_Office.ViewModels.Dialog.HomePageToolsDialogs.HomePageBatchProcess
             }
         }
 
+        public void addPDFFiles(string filename) {
+            fileNames.Add(filename);
+            RemoveExcess(ref fileNames);
+            SetOptionsRemoveGridIsEnabled = "True";
+            AddFileVisibility = Visibility.Collapsed;
+            updateListview("待确定");
+        }
+        
+
         /// <summary>
         /// 删除重复的文件
         /// </summary>
@@ -356,7 +464,7 @@ namespace PDF_Office.ViewModels.Dialog.HomePageToolsDialogs.HomePageBatchProcess
 
         public void OnNavigatedFrom(NavigationContext navigationContext)
         {
-           
+
         }
         #endregion
     }

+ 9 - 0
PDF Office/ViewModels/Dialog/HomePageToolsDialogs/HomePageBatchProcessing/HomePageSetPasswordDialogViewModel.cs

@@ -327,6 +327,15 @@ namespace PDF_Office.ViewModels.Dialog.HomePageToolsDialogs.HomePageBatchProcess
             }
         }
 
+        public void addPDFFiles(string filename)
+        {
+            fileNames.Add(filename);
+            RemoveExcess(ref fileNames);
+            SetSafetyGridIsEnabled = "True";
+            AddFileVisibility = Visibility.Collapsed;
+            updateListview("待确定");
+        }
+
         /// <summary>
         /// 删除重复的文件
         /// </summary>

+ 51 - 81
PDF Office/Views/Dialog/HomePageToolsDialogs/HomePageBatchProcessing/HomePageBatchProcessingDialog.xaml

@@ -5,103 +5,73 @@
              xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
              xmlns:prism="http://prismlibrary.com/"             
              prism:ViewModelLocator.AutoWireViewModel="True"
-             d:DesignHeight="554"
-             d:DesignWidth="892"
+             d:DesignHeight="600"
+             d:DesignWidth="1024"
+             MinWidth="1024"
+             MinHeight="600"
              mc:Ignorable="d">
     <UserControl.Resources>
         <ResourceDictionary>
             <ResourceDictionary.MergedDictionaries>
-                <ResourceDictionary Source="../../../../Styles/CustomBtnStyle.xaml"/>
+                <ResourceDictionary Source="../../../../Styles/RadioButtonStyle.xaml"/>
             </ResourceDictionary.MergedDictionaries>
         </ResourceDictionary>
     </UserControl.Resources>
     <Grid>
-        <Grid.RowDefinitions>
-            <RowDefinition Height="32"/>
-            <RowDefinition/>
-        </Grid.RowDefinitions>
-        <StackPanel Orientation="Horizontal" HorizontalAlignment="Center">
-            <Button x:Name="ShiftingBtn" Style="{StaticResource HomePageCompressBtn}" Tag="0"  Width="106" Command="{Binding DelegateChangeBatchProcessingCommand}" CommandParameter="{Binding ElementName=ShiftingBtn,Path=Tag}" Click="Btn_Click">
-                <StackPanel Orientation="Vertical"  >
-                    <Border HorizontalAlignment="Center">
-                        <TextBlock Text="转档" FontSize="18"></TextBlock>
-                    </Border>
-                    <Border Margin="0,4,0,0">
-                        <Path  VerticalAlignment="Center" HorizontalAlignment="Center" Stroke="Black"  Data="M0 0L4 0 L18 0" Height="2" Stretch="Fill" Name="ShiftingPath"/>
-                    </Border>
+        <Grid.ColumnDefinitions>
+            <ColumnDefinition Width="206*"/>
+            <ColumnDefinition Width="818*"/>
+        </Grid.ColumnDefinitions>
+        <StackPanel Orientation="Vertical" HorizontalAlignment="Center" VerticalAlignment="Top" Height="600" Width="206">
+            <RadioButton x:Name="ShiftingBtn" Style="{StaticResource BatchButton}" Tag="0"  Width="190" Height="32" Command="{Binding DelegateChangeBatchProcessingCommand}" CommandParameter="{Binding ElementName=ShiftingBtn,Path=Tag}" Margin="0,8,0,0">
+                <StackPanel Orientation="Horizontal" >
+                    <Label Background="Black" Width="16" Height="20" Margin="0,0,10,0"></Label>
+                    <TextBlock Text="Convert PDF" FontSize="14" Width="150" Height="22" FontFamily="Segoe UI" ></TextBlock>
                 </StackPanel>
-            </Button>
-            <Button x:Name="CompressBtn" Tag="1" Width="106" Style="{StaticResource HomePageCompressBtn}"  Command="{Binding DelegateChangeBatchProcessingCommand}" CommandParameter="{Binding ElementName=CompressBtn,Path=Tag}" Click="Btn_Click">
-                <StackPanel Orientation="Vertical"  >
-                    <Border HorizontalAlignment="Center">
-                        <TextBlock Text="压缩" FontSize="18"></TextBlock>
-                    </Border>
-                    <Border Margin="0,4,0,0">
-                        <Path  VerticalAlignment="Center" HorizontalAlignment="Center" Stroke="Black"  Data="M0 0L4 0 L18 0" Height="2" Stretch="Fill" Name="CompressPath"/>
-                    </Border>
+            </RadioButton>
+            <RadioButton x:Name="CompressBtn" Tag="1" Width="190" Height="32" Style="{StaticResource BatchButton}"  Command="{Binding DelegateChangeBatchProcessingCommand}" CommandParameter="{Binding ElementName=CompressBtn,Path=Tag}" Margin="0,16,0,0">
+                <StackPanel Orientation="Horizontal"  >
+                    <Label Background="Black" Width="16" Height="20" Margin="0,0,10,0"></Label>
+                    <TextBlock Text="Compress" FontSize="14" Width="150" Height="22"></TextBlock>
                 </StackPanel>
-            </Button>
-            <Button x:Name="SecurityBtn" Tag="2" Width="106" Style="{StaticResource HomePageCompressBtn}" Command="{Binding DelegateChangeBatchProcessingCommand}" CommandParameter="{Binding ElementName=SecurityBtn,Path=Tag}" Click="Btn_Click">
-                <StackPanel Orientation="Vertical"  >
-                    <Border HorizontalAlignment="Center">
-                        <TextBlock Text="安全" FontSize="18"></TextBlock>
-                    </Border>
-                    <Border Margin="0,4,0,0">
-                        <Path  VerticalAlignment="Center" HorizontalAlignment="Center" Stroke="Black"  Data="M0 0L4 0 L18 0" Height="2" Stretch="Fill" Name="SecurityPath"/>
-                    </Border>
+            </RadioButton>
+            <RadioButton x:Name="SecurityBtn" Tag="2" Width="190" Height="32" Style="{StaticResource BatchButton}" Command="{Binding DelegateChangeBatchProcessingCommand}" CommandParameter="{Binding ElementName=SecurityBtn,Path=Tag}"  Margin="0,16,0,0">
+                <StackPanel Orientation="Horizontal"  >
+                    <Label Background="Black" Width="16" Height="20" Margin="0,0,10,0"></Label>
+                    <TextBlock Text="Security" FontSize="14" Width="150" Height="22"></TextBlock>
                 </StackPanel>
-            </Button >
-            <Button x:Name="WatermarkBtn" Tag="3" Width="118" Style="{StaticResource HomePageCompressBtn}" Command="{Binding DelegateChangeBatchProcessingCommand}" CommandParameter="{Binding ElementName=WatermarkBtn,Path=Tag}" Click="Btn_Click">
-                <StackPanel Orientation="Vertical"  >
-                    <Border HorizontalAlignment="Center">
-                        <TextBlock Text="水印" FontSize="18"></TextBlock>
-                    </Border>
-                    <Border Margin="0,4,0,0">
-                        <Path  VerticalAlignment="Center" HorizontalAlignment="Center" Stroke="Black"  Data="M0 0L4 0 L18 0" Height="2" Stretch="Fill" Name="WatermarkPath"/>
-                    </Border>
+            </RadioButton >
+            <RadioButton x:Name="WatermarkBtn" Tag="3" Width="190" Height="32" Style="{StaticResource BatchButton}" Command="{Binding DelegateChangeBatchProcessingCommand}" CommandParameter="{Binding ElementName=WatermarkBtn,Path=Tag}"  Margin="0,16,0,0">
+                <StackPanel Orientation="Horizontal"  >
+                    <Label Background="Black" Width="16" Height="20" Margin="0,0,10,0"></Label>
+                    <TextBlock Text="Watermark" FontSize="14" Width="150" Height="22"></TextBlock>
                 </StackPanel>
-            </Button>
-            <Button x:Name="BackgroundBtn" Tag="4" Width="106" Style="{StaticResource HomePageCompressBtn}" Command="{Binding DelegateChangeBatchProcessingCommand}" CommandParameter="{Binding ElementName=BackgroundBtn,Path=Tag}" Click="Btn_Click">
-                <StackPanel Orientation="Vertical"  >
-                    <Border HorizontalAlignment="Center">
-                        <TextBlock Text="背景" FontSize="18"></TextBlock>
-                    </Border>
-                    <Border Margin="0,4,0,0">
-                        <Path  VerticalAlignment="Center" HorizontalAlignment="Center" Stroke="Black"  Data="M0 0L4 0 L18 0" Height="2" Stretch="Fill" Name="BackgroundPath"/>
-                    </Border>
+            </RadioButton>
+            <RadioButton x:Name="BackgroundBtn" Tag="4" Width="190" Height="32" Style="{StaticResource BatchButton}" Command="{Binding DelegateChangeBatchProcessingCommand}" CommandParameter="{Binding ElementName=BackgroundBtn,Path=Tag}"  Margin="0,16,0,0">
+                <StackPanel Orientation="Horizontal"  >
+                    <Label Background="Black" Width="16" Height="20" Margin="0,0,10,0"></Label>
+                    <TextBlock Text="Background" FontSize="14" Width="150" Height="22"></TextBlock>
                 </StackPanel>
-            </Button>
-            <Button x:Name="HeaderFooterBtn" Tag="5" Width="106" Style="{StaticResource HomePageCompressBtn}" Command="{Binding DelegateChangeBatchProcessingCommand}" CommandParameter="{Binding ElementName=HeaderFooterBtn,Path=Tag}" Click="Btn_Click">
-                <StackPanel Orientation="Vertical"  >
-                    <Border HorizontalAlignment="Center">
-                        <TextBlock Text="页眉页脚" FontSize="18"></TextBlock>
-                    </Border>
-                    <Border Margin="0,4,0,0">
-                        <Path  VerticalAlignment="Center" HorizontalAlignment="Center" Stroke="Black"  Data="M0 0L4 0 L18 0" Height="2" Stretch="Fill" Name="HeaderFooterPath"/>
-                    </Border>
+            </RadioButton>
+            <RadioButton x:Name="HeaderFooterBtn" Tag="5" Width="190" Height="32" Style="{StaticResource BatchButton}" Command="{Binding DelegateChangeBatchProcessingCommand}" CommandParameter="{Binding ElementName=HeaderFooterBtn,Path=Tag}"  Margin="0,16,0,0">
+                <StackPanel Orientation="Horizontal"  >
+                    <Label Background="Black" Width="16" Height="20" Margin="0,0,10,0"></Label>
+                    <TextBlock Text="Header &amp; Footer" FontSize="14" Width="150" Height="22"></TextBlock>
                 </StackPanel>
-            </Button>
-            <Button x:Name="BatesBtn" Tag="6" Width="106" Style="{StaticResource HomePageCompressBtn}" Command="{Binding DelegateChangeBatchProcessingCommand}" CommandParameter="{Binding ElementName=BatesBtn,Path=Tag}" Click="Btn_Click">
-                <StackPanel Orientation="Vertical"  >
-                    <Border HorizontalAlignment="Center">
-                        <TextBlock Text="Bates码" FontSize="18"></TextBlock>
-                    </Border>
-                    <Border Margin="0,4,0,0">
-                        <Path  VerticalAlignment="Center" HorizontalAlignment="Center" Stroke="Black"  Data="M0 0L4 0 L18 0" Height="2" Stretch="Fill" Name="BatesPath"/>
-                    </Border>
+            </RadioButton>
+            <RadioButton x:Name="BatesBtn" Tag="6" Width="190" Height="32" Style="{StaticResource BatchButton}" Command="{Binding DelegateChangeBatchProcessingCommand}" CommandParameter="{Binding ElementName=BatesBtn,Path=Tag}"  Margin="0,16,0,0">
+                <StackPanel Orientation="Horizontal"  >
+                    <Label Background="Black" Width="16" Height="20" Margin="0,0,10,0"></Label>
+                    <TextBlock Text="Bates Number" FontSize="14" Width="150" Height="22"></TextBlock>
                 </StackPanel>
-            </Button>
-            <Button x:Name="RemoveSecurityBtn" Tag="7" Width="106" Style="{StaticResource HomePageCompressBtn}" Command="{Binding DelegateChangeBatchProcessingCommand}" CommandParameter="{Binding ElementName=RemoveSecurityBtn,Path=Tag}" Click="Btn_Click">
-                <StackPanel Orientation="Vertical"  >
-                    <Border HorizontalAlignment="Center">
-                        <TextBlock Text="批量移除" FontSize="18"></TextBlock>
-                    </Border>
-                    <Border Margin="0,4,0,0">
-                        <Path  VerticalAlignment="Center" HorizontalAlignment="Center" Stroke="Black"  Data="M0 0L4 0 L18 0" Height="2" Stretch="Fill" Name="RemoveSecurityPath"/>
-                    </Border>
+            </RadioButton>
+            <RadioButton x:Name="RemoveSecurityBtn" Tag="7" Width="190" Height="32" Style="{StaticResource BatchButton}" Command="{Binding DelegateChangeBatchProcessingCommand}" CommandParameter="{Binding ElementName=RemoveSecurityBtn,Path=Tag}"  Margin="0,16,0,0">
+                <StackPanel Orientation="Horizontal"  >
+                    <Label Background="Black" Width="16" Height="20" Margin="0,0,10,0"></Label>
+                    <TextBlock Text="Batch Remove" FontSize="14" Width="150" Height="22"></TextBlock>
                 </StackPanel>
-            </Button>
+            </RadioButton>
         </StackPanel>
-        <ContentControl x:Name="PrintMod" prism:RegionManager.RegionName="{Binding BatchProcessingRegionName}"   Visibility="{Binding BatchProcessingVisible}" Grid.Row="1"/>
+        <ContentControl x:Name="PrintMod" prism:RegionManager.RegionName="{Binding BatchProcessingRegionName}"   Visibility="{Binding BatchProcessingVisible}" Grid.Column="1" />
     </Grid>
 </UserControl>

+ 14 - 180
PDF Office/Views/Dialog/HomePageToolsDialogs/HomePageBatchProcessing/HomePageBatchProcessingDialog.xaml.cs

@@ -24,208 +24,42 @@ namespace PDF_Office.Views.Dialog.HomePageToolsDialogs.HomePageBatchProcessing
             SetPathVisibility(HomePageBatchProcessingDialogModel.BatchProcessingIndex);
         }
 
-        public void SetPathVisibility(int index) {
-            this.BatesPath.Visibility = System.Windows.Visibility.Hidden;
-            this.SecurityPath.Visibility = System.Windows.Visibility.Hidden;
-            this.ShiftingPath.Visibility = System.Windows.Visibility.Hidden;
-            this.WatermarkPath.Visibility = System.Windows.Visibility.Hidden;
-            this.HeaderFooterPath.Visibility = System.Windows.Visibility.Hidden;
-            this.BackgroundPath.Visibility = System.Windows.Visibility.Hidden;
-            this.CompressPath.Visibility = System.Windows.Visibility.Hidden;
-            this.RemoveSecurityPath.Visibility = System.Windows.Visibility.Hidden;
-            switch (index) { 
+        public void SetPathVisibility(int index) 
+        {
+            switch (index)
+            {
                 case 0:
-                    this.ShiftingPath.Visibility = System.Windows.Visibility.Visible;
+                    this.ShiftingBtn.IsChecked=true;
                     break;
                 case 1:
-                    this.CompressPath.Visibility = System.Windows.Visibility.Visible;
+                    this.CompressBtn.IsChecked = true;
                     break;
                 case 2:
-                    this.SecurityPath.Visibility = System.Windows.Visibility.Visible;
+                    this.SecurityBtn.IsChecked = true;
                     break;
                 case 3:
-                    this.WatermarkPath.Visibility = System.Windows.Visibility.Visible;
+                    this.WatermarkBtn.IsChecked = true;
                     break;
                 case 4:
-                    this.BackgroundPath.Visibility = System.Windows.Visibility.Visible;
+                    this.BackgroundBtn.IsChecked = true;
                     break;
                 case 5:
-                    this.HeaderFooterPath.Visibility = System.Windows.Visibility.Visible;
+                    this.HeaderFooterBtn.IsChecked = true;
                     break;
                 case 6:
-                    this.BatesPath.Visibility = System.Windows.Visibility.Visible;
+                    this.BatesBtn.IsChecked = true;
                     break;
                 case 7:
-                    this.RemoveSecurityPath.Visibility = System.Windows.Visibility.Visible;
+                    this.RemoveSecurityBtn.IsChecked = true;
                     break;
             }
         }
 
         private void Btn_Click(object sender, System.Windows.RoutedEventArgs e)
         {
-            var btn = sender as Button;
-            if (btn != null) {
-                switch (btn.Name.ToString())
-                {
-                    case "BatesBtn":
-                        this.BatesBtn.IsEnabled = false;
-                        this.SecurityBtn.IsEnabled = true;
-                        this.ShiftingBtn.IsEnabled = true;
-                        this.WatermarkBtn.IsEnabled = true;
-                        this.HeaderFooterBtn.IsEnabled = true;
-                        this.BackgroundBtn.IsEnabled = true;
-                        this.CompressBtn.IsEnabled = true;
-                        this.RemoveSecurityBtn.IsEnabled = true;
-
-                        this.BatesPath.Visibility = System.Windows.Visibility.Visible;
-                        this.SecurityPath.Visibility = System.Windows.Visibility.Hidden;
-                        this.ShiftingPath.Visibility = System.Windows.Visibility.Hidden;
-                        this.WatermarkPath.Visibility = System.Windows.Visibility.Hidden;
-                        this.HeaderFooterPath.Visibility = System.Windows.Visibility.Hidden;
-                        this.BackgroundPath.Visibility = System.Windows.Visibility.Hidden;
-                        this.CompressPath.Visibility = System.Windows.Visibility.Hidden;
-                        this.RemoveSecurityPath.Visibility = System.Windows.Visibility.Hidden;
-                        break;
-                    case "SecurityBtn":
-                        this.BatesBtn.IsEnabled =true;
-                        this.SecurityBtn.IsEnabled = false;
-                        this.ShiftingBtn.IsEnabled = true;
-                        this.WatermarkBtn.IsEnabled = true;
-                        this.HeaderFooterBtn.IsEnabled = true;
-                        this.BackgroundBtn.IsEnabled = true;
-                        this.CompressBtn.IsEnabled = true;
-                        this.RemoveSecurityBtn.IsEnabled = true;
-
-                        this.BatesPath.Visibility = System.Windows.Visibility.Hidden;
-                        this.SecurityPath.Visibility = System.Windows.Visibility.Visible;
-                        this.ShiftingPath.Visibility = System.Windows.Visibility.Hidden;
-                        this.WatermarkPath.Visibility = System.Windows.Visibility.Hidden;
-                        this.HeaderFooterPath.Visibility = System.Windows.Visibility.Hidden;
-                        this.BackgroundPath.Visibility = System.Windows.Visibility.Hidden;
-                        this.CompressPath.Visibility = System.Windows.Visibility.Hidden;
-                        this.RemoveSecurityPath.Visibility = System.Windows.Visibility.Hidden;
-                        break;
-                   
-                    case "ShiftingBtn":
-                        this.BatesBtn.IsEnabled = true;
-                        this.SecurityBtn.IsEnabled = true;
-                        this.ShiftingBtn.IsEnabled = false;
-                        this.WatermarkBtn.IsEnabled = true;
-                        this.HeaderFooterBtn.IsEnabled = true;
-                        this.BackgroundBtn.IsEnabled = true;
-                        this.CompressBtn.IsEnabled = true;
-                        this.RemoveSecurityBtn.IsEnabled = true;
-
-                        this.BatesPath.Visibility = System.Windows.Visibility.Hidden;
-                        this.SecurityPath.Visibility = System.Windows.Visibility.Hidden;
-                        this.ShiftingPath.Visibility = System.Windows.Visibility.Visible;
-                        this.WatermarkPath.Visibility = System.Windows.Visibility.Hidden;
-                        this.HeaderFooterPath.Visibility = System.Windows.Visibility.Hidden;
-                        this.BackgroundPath.Visibility = System.Windows.Visibility.Hidden;
-                        this.CompressPath.Visibility = System.Windows.Visibility.Hidden;
-                        this.RemoveSecurityPath.Visibility = System.Windows.Visibility.Hidden;
-                        break;
-                    case "WatermarkBtn":
-                        this.BatesBtn.IsEnabled = true;
-                        this.SecurityBtn.IsEnabled = true;
-                        this.ShiftingBtn.IsEnabled = true;
-                        this.WatermarkBtn.IsEnabled = false;
-                        this.HeaderFooterBtn.IsEnabled = true;
-                        this.BackgroundBtn.IsEnabled = true;
-                        this.CompressBtn.IsEnabled = true;
-                        this.RemoveSecurityBtn.IsEnabled = true;
-                        this.BatesPath.Visibility = System.Windows.Visibility.Hidden;
-                        this.SecurityPath.Visibility = System.Windows.Visibility.Hidden;
-                        this.ShiftingPath.Visibility = System.Windows.Visibility.Hidden;
-                        this.WatermarkPath.Visibility = System.Windows.Visibility.Visible;
-                        this.HeaderFooterPath.Visibility = System.Windows.Visibility.Hidden;
-                        this.BackgroundPath.Visibility = System.Windows.Visibility.Hidden;
-                        this.CompressPath.Visibility = System.Windows.Visibility.Hidden;
-                        this.RemoveSecurityPath.Visibility = System.Windows.Visibility.Hidden;
-                        break;
-                    case "HeaderFooterBtn":
-                        this.BatesBtn.IsEnabled = true;
-                        this.SecurityBtn.IsEnabled = true;
-                        this.ShiftingBtn.IsEnabled = true;
-                        this.WatermarkBtn.IsEnabled = true;
-                        this.HeaderFooterBtn.IsEnabled = false;
-                        this.BackgroundBtn.IsEnabled = true;
-                        this.CompressBtn.IsEnabled = true;
-                        this.RemoveSecurityBtn.IsEnabled = true;
-
-                        this.BatesPath.Visibility = System.Windows.Visibility.Hidden;
-                        this.SecurityPath.Visibility = System.Windows.Visibility.Hidden;
-                        this.ShiftingPath.Visibility = System.Windows.Visibility.Hidden;
-                        this.WatermarkPath.Visibility = System.Windows.Visibility.Hidden;
-                        this.HeaderFooterPath.Visibility = System.Windows.Visibility.Visible;
-                        this.BackgroundPath.Visibility = System.Windows.Visibility.Hidden;
-                        this.CompressPath.Visibility = System.Windows.Visibility.Hidden;
-                        this.RemoveSecurityPath.Visibility = System.Windows.Visibility.Hidden;
-                        break;
-                    case "BackgroundBtn":
-
-                        this.BatesBtn.IsEnabled = true;
-                        this.SecurityBtn.IsEnabled = true;
-                        this.ShiftingBtn.IsEnabled = true;
-                        this.WatermarkBtn.IsEnabled = true;
-                        this.HeaderFooterBtn.IsEnabled = true;
-                        this.BackgroundBtn.IsEnabled = false;
-                        this.CompressBtn.IsEnabled = true;
-                        this.RemoveSecurityBtn.IsEnabled = true;
-
-                        this.BatesPath.Visibility = System.Windows.Visibility.Hidden;
-                        this.SecurityPath.Visibility = System.Windows.Visibility.Hidden;
-                        this.ShiftingPath.Visibility = System.Windows.Visibility.Hidden;
-                        this.WatermarkPath.Visibility = System.Windows.Visibility.Hidden;
-                        this.HeaderFooterPath.Visibility = System.Windows.Visibility.Hidden;
-                        this.BackgroundPath.Visibility = System.Windows.Visibility.Visible;
-                        this.CompressPath.Visibility = System.Windows.Visibility.Hidden;
-                        this.RemoveSecurityPath.Visibility = System.Windows.Visibility.Hidden;
-                        break;
-                    case "CompressBtn":
-                        this.BatesBtn.IsEnabled = true;
-                        this.SecurityBtn.IsEnabled = true;
-                        this.ShiftingBtn.IsEnabled = true;
-                        this.WatermarkBtn.IsEnabled = true;
-                        this.HeaderFooterBtn.IsEnabled = true;
-                        this.BackgroundBtn.IsEnabled = true;
-                        this.CompressBtn.IsEnabled = false;
-                        this.RemoveSecurityBtn.IsEnabled = true;
-
-                        this.BatesPath.Visibility = System.Windows.Visibility.Hidden;
-                        this.SecurityPath.Visibility = System.Windows.Visibility.Hidden;
-                        this.ShiftingPath.Visibility = System.Windows.Visibility.Hidden;
-                        this.WatermarkPath.Visibility = System.Windows.Visibility.Hidden;
-                        this.HeaderFooterPath.Visibility = System.Windows.Visibility.Hidden;
-                        this.BackgroundPath.Visibility = System.Windows.Visibility.Hidden;
-                        this.CompressPath.Visibility = System.Windows.Visibility.Visible;
-                        this.RemoveSecurityPath.Visibility = System.Windows.Visibility.Hidden;
-                        break;
-                    case "RemoveSecurityBtn":
-                        this.BatesBtn.IsEnabled = true;
-                        this.SecurityBtn.IsEnabled = true;
-                        this.ShiftingBtn.IsEnabled = true;
-                        this.WatermarkBtn.IsEnabled = true;
-                        this.HeaderFooterBtn.IsEnabled = true;
-                        this.BackgroundBtn.IsEnabled = true;
-                        this.CompressBtn.IsEnabled = true;
-                        this.RemoveSecurityBtn.IsEnabled = false;
-
-                        this.BatesPath.Visibility = System.Windows.Visibility.Hidden;
-                        this.SecurityPath.Visibility = System.Windows.Visibility.Hidden;
-                        this.ShiftingPath.Visibility = System.Windows.Visibility.Hidden;
-                        this.WatermarkPath.Visibility = System.Windows.Visibility.Hidden;
-                        this.HeaderFooterPath.Visibility = System.Windows.Visibility.Hidden;
-                        this.BackgroundPath.Visibility = System.Windows.Visibility.Hidden;
-                        this.CompressPath.Visibility = System.Windows.Visibility.Hidden;
-                        this.RemoveSecurityPath.Visibility = System.Windows.Visibility.Visible;
-                        break;
-
-
-                }
             
-            
-            }
         }
+
+      
     }
 }

+ 55 - 46
PDF Office/Views/Dialog/HomePageToolsDialogs/HomePageBatchProcessing/HomePageCompressDialog.xaml

@@ -6,8 +6,8 @@
              xmlns:prism="http://prismlibrary.com/"
              prism:ViewModelLocator.AutoWireViewModel="True"
              xmlns:convert="clr-namespace:PDF_Office.DataConvert"
-             d:DesignHeight="462"
-             d:DesignWidth="892"
+             d:DesignHeight="600"
+             d:DesignWidth="818"
              mc:Ignorable="d">
     <UserControl.Resources>
         <ResourceDictionary>
@@ -17,47 +17,55 @@
 
     <Grid IsEnabled="{Binding CompressGridIsEnabled}">
         <Grid.ColumnDefinitions>
-            <ColumnDefinition Width="632"/>
-            <ColumnDefinition Width="260"/>
+            <ColumnDefinition Width="558*"/>
+            <ColumnDefinition Width="260*"/>
         </Grid.ColumnDefinitions>
         <Grid Grid.Column="0">
             <Grid.RowDefinitions>
-                <RowDefinition Height="398"/>
-                <RowDefinition Height="72"/>
+                <RowDefinition Height="556*"/>
+                <RowDefinition Height="64*"/>
             </Grid.RowDefinitions>
-            <Button Name="BtnBlank" Grid.Row="0" Background="Green" Height="300" Width="300" Visibility="{Binding AddFileVisibility}" Command="{Binding ADDPDFCommand}" >
-            </Button>
-            <ListView x:Name="listView" DataContext="{Binding PDFDataTable,Mode=TwoWay}" Grid.Row="0" Background="White"  ItemsSource="{Binding}" SelectionChanged="listView_SelectionChanged" Visibility="{Binding ElementName=BtnBlank, Path=Visibility, Converter={StaticResource unVisibleConvert}}">
-                <ListView.ContextMenu>
-                    <ContextMenu  StaysOpen="True" >
-                        <MenuItem Header="打开文件" Name="OpenFileMenuItem"  Click="OpenFileMenuItem_Click"/>
-                        <MenuItem Header="移除" Name="RemoveFileMenuItem" Click="RemoveFileMenuItem_Click"/>
-                    </ContextMenu>
-                </ListView.ContextMenu>
-                <ListView.View>
-                    <GridView>
-                        <GridViewColumn  Header="文档名"  Width="400" DisplayMemberBinding="{Binding FileName}"/>
-                        <GridViewColumn Header="大小" Width="100" DisplayMemberBinding="{Binding FileSize}"/>
-                        <GridViewColumn Header="状态" Width="80" >
-                            <GridViewColumn.CellTemplate>
-                                <DataTemplate>
-                                    <TextBlock Text="{Binding FileState}" TextDecorations="Underline" Foreground="Black"/>
-                                </DataTemplate>
-                            </GridViewColumn.CellTemplate>
-                        </GridViewColumn>
-                    </GridView>
-                </ListView.View>
-                <ListView.ItemContainerStyle>
-                    <Style TargetType="ListViewItem">
-                        <Setter Property="Height" Value="42"/>
-                        <Style.Triggers>
-                            <Trigger Property="ListView.AlternationIndex" Value="1">
-                                <Setter Property="Background" Value="LightGray"/>
-                            </Trigger>
-                        </Style.Triggers>
-                    </Style>
-                </ListView.ItemContainerStyle>
-            </ListView>
+            <Grid  Grid.Row="0" AllowDrop="True"
+                  Drop="Grid_Drop"
+                  DragEnter="MainPage_DragEnter"
+                  DragOver="MainPage_DragOver"
+                  DragLeave="MainPage_DragLeave"
+                  >
+                <Label Name="DropGrid" Background="#18A0FB" Opacity="0.5" Panel.ZIndex="1" Visibility="Collapsed"/>
+                <Button Name="BtnBlank"  Background="Green" Height="300" Width="300" Visibility="{Binding AddFileVisibility}" Command="{Binding ADDPDFCommand}" >
+                </Button>
+                <ListView x:Name="listView" DataContext="{Binding PDFDataTable,Mode=TwoWay}" Background="White"  ItemsSource="{Binding}" SelectionChanged="listView_SelectionChanged" Visibility="{Binding ElementName=BtnBlank, Path=Visibility, Converter={StaticResource unVisibleConvert}}">
+                    <ListView.ContextMenu>
+                        <ContextMenu  StaysOpen="True" >
+                            <MenuItem Header="打开文件" Name="OpenFileMenuItem"  Click="OpenFileMenuItem_Click"/>
+                            <MenuItem Header="移除" Name="RemoveFileMenuItem" Click="RemoveFileMenuItem_Click"/>
+                        </ContextMenu>
+                    </ListView.ContextMenu>
+                    <ListView.View>
+                        <GridView>
+                            <GridViewColumn  Header="文档名"  Width="400" DisplayMemberBinding="{Binding FileName}"/>
+                            <GridViewColumn Header="大小" Width="100" DisplayMemberBinding="{Binding FileSize}"/>
+                            <GridViewColumn Header="状态" Width="80" >
+                                <GridViewColumn.CellTemplate>
+                                    <DataTemplate>
+                                        <TextBlock Text="{Binding FileState}" TextDecorations="Underline" Foreground="Black"/>
+                                    </DataTemplate>
+                                </GridViewColumn.CellTemplate>
+                            </GridViewColumn>
+                        </GridView>
+                    </ListView.View>
+                    <ListView.ItemContainerStyle>
+                        <Style TargetType="ListViewItem">
+                            <Setter Property="Height" Value="42"/>
+                            <Style.Triggers>
+                                <Trigger Property="ListView.AlternationIndex" Value="1">
+                                    <Setter Property="Background" Value="LightGray"/>
+                                </Trigger>
+                            </Style.Triggers>
+                        </Style>
+                    </ListView.ItemContainerStyle>
+                </ListView>
+            </Grid>
             <Grid Grid.Row="1">
                 <Button x:Name="MenuBtn"  Width="113"
                     Height="40"
@@ -110,19 +118,20 @@
                 <RowDefinition Height="*"/>
                 <RowDefinition Height="72"/>
             </Grid.RowDefinitions>
-            <StackPanel Orientation="Vertical" Margin="15,16,0,0" Grid.Row="0">
-                <TextBlock Text="优化选项"/>
-                <RadioButton Name="LargeQualityRadioBtn" Command="{Binding RadioButtonCommand}" CommandParameter="{Binding ElementName=LargeQualityRadioBtn,Path=Name}" Margin="0,8,0,0">
-                    <TextBlock Text="大型文件"/>
+            <StackPanel Orientation="Vertical" Margin="16,14,0,0" Grid.Row="0">
+                <TextBlock Text="优化选项" FontSize="14" Width="228" Height=" 22" FontFamily="Segoe UI" TextBlock.Foreground="#252629"  HorizontalAlignment="Left"/>
+                <TextBlock Text="Optimization Options" FontSize="12" FontFamily="Segoe UI" Width="228" Height=" 20" TextBlock.Foreground="#616469" Margin="0,16,0,0"  HorizontalAlignment="Left"/>
+                <RadioButton Name="LargeQualityRadioBtn" Command="{Binding RadioButtonCommand}" CommandParameter="{Binding ElementName=LargeQualityRadioBtn,Path=Name}" Margin="0,10,0,0">
+                    <TextBlock Text="大型文件" FontSize="14" Height="22" Width="87" TextBlock.Foreground="#252629"/>
                 </RadioButton>
                 <RadioButton Name="StandardQualityRadioBtn" Command="{Binding RadioButtonCommand}" CommandParameter="{Binding ElementName=StandardQualityRadioBtn,Path=Name}" Margin="0,8,0,0">
-                    <TextBlock Text="标准文件"/>
+                    <TextBlock Text="标准文件" FontSize="14" Height="22" Width="87" TextBlock.Foreground="#252629"/>
                 </RadioButton>
                 <RadioButton Name="LittleQualityRadioBtn" Command="{Binding RadioButtonCommand}" CommandParameter="{Binding ElementName=LittleQualityRadioBtn,Path=Name}" Margin="0,8,0,0">
-                    <TextBlock Text="小型文件"/>
+                    <TextBlock Text="小型文件" FontSize="14" Height="22" Width="87" TextBlock.Foreground="#252629"/>
                 </RadioButton>
                 <RadioButton Name="MicroQualityRadioBtn" Command="{Binding RadioButtonCommand}" CommandParameter="{Binding ElementName=MicroQualityRadioBtn,Path=Name}" Margin="0,8,0,0">
-                    <TextBlock Text="微型文件"/>
+                    <TextBlock Text="微型文件" FontSize="14" Height="22" Width="87" TextBlock.Foreground="#252629"/>
                 </RadioButton>
             </StackPanel>
             <Grid Grid.Row="2">

+ 96 - 9
PDF Office/Views/Dialog/HomePageToolsDialogs/HomePageBatchProcessing/HomePageCompressDialog.xaml.cs

@@ -1,8 +1,11 @@
-using PDF_Office.ViewModels.Dialog.HomePageToolsDialogs;
+using PDF_Office.Helper;
+using PDF_Office.ViewModels.Dialog.HomePageToolsDialogs;
 using PDF_Office.ViewModels.Dialog.HomePageToolsDialogs.HomePageBatchProcessing;
+using System;
 using System.Collections;
+using System.Windows;
 using System.Windows.Controls;
-
+using System.Windows.Interop;
 namespace PDF_Office.Views.Dialog.HomePageToolsDialogs.HomePageBatchProcessing
 {
     /// <summary>
@@ -10,9 +13,12 @@ namespace PDF_Office.Views.Dialog.HomePageToolsDialogs.HomePageBatchProcessing
     /// </summary>
     public partial class HomePageCompressDialog : UserControl
     {
+        private HomePageCompressDialogViewModel viewModel;
+        private IDropTargetHelper dropHelper;
         public HomePageCompressDialog()
         {
             InitializeComponent();
+            viewModel=this.DataContext as HomePageCompressDialogViewModel;
         }
         private void Menu_Click(object sender, System.Windows.RoutedEventArgs e)
         {
@@ -24,31 +30,112 @@ namespace PDF_Office.Views.Dialog.HomePageToolsDialogs.HomePageBatchProcessing
             IList list = listView.SelectedItems;
             var lists = listView.Items;
             System.Data.DataRowView a;
-            ((HomePageCompressDialogViewModel)this.DataContext).fileNamesView.Clear();
+            viewModel.fileNamesView.Clear();
             foreach (var item in list)
             {
                 a = (System.Data.DataRowView)item;
-                ((HomePageCompressDialogViewModel)this.DataContext).fileNamesView.Add(lists.IndexOf(a));
+                viewModel.fileNamesView.Add(lists.IndexOf(a));
             }
-            if (((HomePageCompressDialogViewModel)this.DataContext).fileNamesView.Count > 0)
+            if (viewModel.fileNamesView.Count > 0)
             {
-                ((HomePageCompressDialogViewModel)this.DataContext).RemoveIsEnable = "True";
+                viewModel.RemoveIsEnable = "True";
             }
             else
             {
-                ((HomePageCompressDialogViewModel)this.DataContext).RemoveIsEnable = "False";
+                viewModel.RemoveIsEnable = "False";
             }
 
         }
 
         private void RemoveFileMenuItem_Click(object sender, System.Windows.RoutedEventArgs e)
         {
-            ((HomePageCompressDialogViewModel)this.DataContext).removepdffile();
+            viewModel.removepdffile();
         }
 
         private void OpenFileMenuItem_Click(object sender, System.Windows.RoutedEventArgs e)
         {
-            ((HomePageCompressDialogViewModel)this.DataContext).openfiledialog();
+            viewModel.openfiledialog();
+        }
+
+        private void Grid_Drop(object sender, DragEventArgs e)
+        {
+
+            try
+            {
+                Point iconPoint = e.GetPosition(this);
+                dropHelper?.Drop((System.Runtime.InteropServices.ComTypes.IDataObject)e.Data, ref iconPoint, e.Effects);
+            }
+            catch (Exception ex)
+            {
+
+            }
+            string dropFile = "Drop";
+            if (e.Data.GetDataPresent(System.Windows.DataFormats.FileDrop))
+            {
+                DropGrid.Visibility = Visibility.Collapsed;
+                int count = ((System.Array)e.Data.GetData(System.Windows.DataFormats.FileDrop)).Length;
+                for (int i = 0; i < count; i++)
+                {
+                    dropFile = ((System.Array)e.Data.GetData(System.Windows.DataFormats.FileDrop)).GetValue(i).ToString(); ;
+                    //MessageBox.Show(dropFile);
+                    if (dropFile.ToLower().EndsWith("pdf"))
+                    { viewModel.addPDFFiles(dropFile); }
+                }
+            }
+        }
+        private void MainPage_DragEnter(object sender, DragEventArgs e)
+        {
+            DropGrid.Visibility = Visibility.Visible;
+            //页面编辑和缩略图
+            if ((e.OriginalSource as Image) != null)
+                return;
+            try
+            {
+                if (dropHelper == null)
+                {
+                    dropHelper = Activator.CreateInstance(Type.GetTypeFromCLSID(new Guid("4657278A-411B-11D2-839A-00C04FD918D0"))) as IDropTargetHelper;
+                }
+                Point iconPoint = e.GetPosition(this);
+                dropHelper?.DragEnter(new WindowInteropHelper(Window.GetWindow(this)).Handle, (System.Runtime.InteropServices.ComTypes.IDataObject)e.Data, ref iconPoint, e.Effects);
+            }
+            catch (Exception ex)
+            {
+
+            }
+
+        }
+
+        private void MainPage_DragOver(object sender, DragEventArgs e)
+        {
+
+            if ((e.OriginalSource as Image) != null)
+                return;
+            try
+            {
+                Point iconPoint = e.GetPosition(this);
+                dropHelper?.DragOver(ref iconPoint, e.Effects);
+            }
+            catch (Exception ex)
+            {
+
+            }
+
+        }
+
+        private void MainPage_DragLeave(object sender, DragEventArgs e)
+        {
+            DropGrid.Visibility = Visibility.Collapsed;
+            if ((e.OriginalSource as Image) != null)
+                return;
+            try
+            {
+                dropHelper?.DragLeave();
+            }
+            catch (Exception ex)
+            {
+
+            }
+
         }
 
     }

+ 47 - 39
PDF Office/Views/Dialog/HomePageToolsDialogs/HomePageBatchProcessing/HomePageConverter/HomePageConverterDialog.xaml

@@ -6,8 +6,8 @@
              xmlns:prism="http://prismlibrary.com/"
              prism:ViewModelLocator.AutoWireViewModel="True"
              xmlns:convert="clr-namespace:PDF_Office.DataConvert"
-             d:DesignHeight="462"
-             d:DesignWidth="892"
+             d:DesignHeight="600"
+             d:DesignWidth="818"
              mc:Ignorable="d">
     <UserControl.Resources>
         <ResourceDictionary>
@@ -17,47 +17,55 @@
 
     <Grid IsEnabled="{Binding ConverterGridIsEnabled}">
         <Grid.ColumnDefinitions>
-            <ColumnDefinition Width="632"/>
-            <ColumnDefinition Width="260"/>
+            <ColumnDefinition Width="558*"/>
+            <ColumnDefinition Width="260*"/>
         </Grid.ColumnDefinitions>
         <Grid Grid.Column="0">
             <Grid.RowDefinitions>
-                <RowDefinition Height="398"/>
-                <RowDefinition Height="72"/>
+                <RowDefinition Height="556*"/>
+                <RowDefinition Height="64*"/>
             </Grid.RowDefinitions>
-            <Button Name="BtnBlank" Grid.Row="0" Background="Green" Height="300" Width="300" Visibility="{Binding AddFileVisibility}" Command="{Binding ADDPDFCommand}" >
-            </Button>
-            <ListView x:Name="listView" DataContext="{Binding PDFDataTable,Mode=TwoWay}" Grid.Row="0" Background="White"  ItemsSource="{Binding}" SelectionChanged="listView_SelectionChanged" Visibility="{Binding ElementName=BtnBlank, Path=Visibility, Converter={StaticResource unVisibleConvert}}">
-                <ListView.ContextMenu>
-                    <ContextMenu  StaysOpen="True" >
-                        <MenuItem Header="打开文件" Name="OpenFileMenuItem"  Click="OpenFileMenuItem_Click"/>
-                        <MenuItem Header="移除" Name="RemoveFileMenuItem" Click="RemoveFileMenuItem_Click"/>
-                    </ContextMenu>
-                </ListView.ContextMenu>
-                <ListView.View>
-                    <GridView>
-                        <GridViewColumn  Header="文档名"  Width="400" DisplayMemberBinding="{Binding FileName}"/>
-                        <GridViewColumn Header="大小" Width="100" DisplayMemberBinding="{Binding FileSize}"/>
-                        <GridViewColumn Header="状态" Width="80" >
-                            <GridViewColumn.CellTemplate>
-                                <DataTemplate>
-                                    <TextBlock Text="{Binding FileState}" TextDecorations="Underline" Foreground="Black"/>
-                                </DataTemplate>
-                            </GridViewColumn.CellTemplate>
-                        </GridViewColumn>
-                    </GridView>
-                </ListView.View>
-                <ListView.ItemContainerStyle>
-                    <Style TargetType="ListViewItem">
-                        <Setter Property="Height" Value="42"/>
-                        <Style.Triggers>
-                            <Trigger Property="ListView.AlternationIndex" Value="1">
-                                <Setter Property="Background" Value="LightGray"/>
-                            </Trigger>
-                        </Style.Triggers>
-                    </Style>
-                </ListView.ItemContainerStyle>
-            </ListView>
+            <Grid  Grid.Row="0" AllowDrop="True"
+                  Drop="Grid_Drop"
+                  DragEnter="MainPage_DragEnter"
+                  DragOver="MainPage_DragOver"
+                  DragLeave="MainPage_DragLeave"
+                  >
+                <Label Name="DropGrid" Background="#18A0FB" Opacity="0.5" Panel.ZIndex="1" Visibility="Collapsed"/>
+                <Button Name="BtnBlank"  Background="Green" Height="300" Width="300" Visibility="{Binding AddFileVisibility}" Command="{Binding ADDPDFCommand}" >
+                </Button>
+                <ListView x:Name="listView" DataContext="{Binding PDFDataTable,Mode=TwoWay}" Grid.Row="0" Background="White"  ItemsSource="{Binding}" SelectionChanged="listView_SelectionChanged" Visibility="{Binding ElementName=BtnBlank, Path=Visibility, Converter={StaticResource unVisibleConvert}}">
+                    <ListView.ContextMenu>
+                        <ContextMenu  StaysOpen="True" >
+                            <MenuItem Header="打开文件" Name="OpenFileMenuItem"  Click="OpenFileMenuItem_Click"/>
+                            <MenuItem Header="移除" Name="RemoveFileMenuItem" Click="RemoveFileMenuItem_Click"/>
+                        </ContextMenu>
+                    </ListView.ContextMenu>
+                    <ListView.View>
+                        <GridView>
+                            <GridViewColumn  Header="文档名"  Width="400" DisplayMemberBinding="{Binding FileName}"/>
+                            <GridViewColumn Header="大小" Width="100" DisplayMemberBinding="{Binding FileSize}"/>
+                            <GridViewColumn Header="状态" Width="80" >
+                                <GridViewColumn.CellTemplate>
+                                    <DataTemplate>
+                                        <TextBlock Text="{Binding FileState}" TextDecorations="Underline" Foreground="Black"/>
+                                    </DataTemplate>
+                                </GridViewColumn.CellTemplate>
+                            </GridViewColumn>
+                        </GridView>
+                    </ListView.View>
+                    <ListView.ItemContainerStyle>
+                        <Style TargetType="ListViewItem">
+                            <Setter Property="Height" Value="42"/>
+                            <Style.Triggers>
+                                <Trigger Property="ListView.AlternationIndex" Value="1">
+                                    <Setter Property="Background" Value="LightGray"/>
+                                </Trigger>
+                            </Style.Triggers>
+                        </Style>
+                    </ListView.ItemContainerStyle>
+                </ListView>
+            </Grid>
             <Grid Grid.Row="1">
                 <Button x:Name="MenuBtn"  Width="113"
                     Height="40"

+ 96 - 8
PDF Office/Views/Dialog/HomePageToolsDialogs/HomePageBatchProcessing/HomePageConverter/HomePageConverterDialog.xaml.cs

@@ -1,9 +1,13 @@
-using PDF_Office.ViewModels.Dialog.HomePageToolsDialogs.HomePageBatchProcessing;
+using PDF_Office.Helper;
+using PDF_Office.ViewModels.Dialog.HomePageToolsDialogs.HomePageBatchProcessing;
 using PDF_Office.ViewModels.Dialog.HomePageToolsDialogs.HomePageBatchProcessing.HomePageConverter;
 using Prism.Ioc;
 using Prism.Regions;
+using System;
 using System.Collections;
+using System.Windows;
 using System.Windows.Controls;
+using System.Windows.Interop;
 
 namespace PDF_Office.Views.Dialog.HomePageToolsDialogs.HomePageBatchProcessing.HomePageConverter
 {
@@ -13,6 +17,8 @@ namespace PDF_Office.Views.Dialog.HomePageToolsDialogs.HomePageBatchProcessing.H
     public partial class HomePageConverterDialog : UserControl
     {
         private IContainerProvider containerProvider;
+        private IDropTargetHelper dropHelper;
+        private HomePageConverterDialogViewModel viewModel;
         public HomePageConverterDialog(IContainerProvider containerProvider)
         {
             InitializeComponent();
@@ -20,6 +26,7 @@ namespace PDF_Office.Views.Dialog.HomePageToolsDialogs.HomePageBatchProcessing.H
             var regionManager = containerProvider.Resolve<IRegionManager>();
             RegionManager.SetRegionManager(this, regionManager);
             RegionManager.UpdateRegions();
+            viewModel=this.DataContext as HomePageConverterDialogViewModel;
         }
         private void Menu_Click(object sender, System.Windows.RoutedEventArgs e)
         {
@@ -31,36 +38,117 @@ namespace PDF_Office.Views.Dialog.HomePageToolsDialogs.HomePageBatchProcessing.H
             IList list = listView.SelectedItems;
             var lists = listView.Items;
             System.Data.DataRowView a;
-            ((HomePageConverterDialogViewModel)this.DataContext).fileNamesView.Clear();
+            viewModel.fileNamesView.Clear();
             foreach (var item in list)
             {
                 a = (System.Data.DataRowView)item;
-                ((HomePageConverterDialogViewModel)this.DataContext).fileNamesView.Add(lists.IndexOf(a));
+                viewModel.fileNamesView.Add(lists.IndexOf(a));
             }
-            if (((HomePageConverterDialogViewModel)this.DataContext).fileNamesView.Count > 0)
+            if (viewModel.fileNamesView.Count > 0)
             {
-                ((HomePageConverterDialogViewModel)this.DataContext).RemoveIsEnable = "True";
+                viewModel.RemoveIsEnable = "True";
             }
             else
             {
-                ((HomePageConverterDialogViewModel)this.DataContext).RemoveIsEnable = "False";
+                viewModel.RemoveIsEnable = "False";
             }
 
         }
 
         private void RemoveFileMenuItem_Click(object sender, System.Windows.RoutedEventArgs e)
         {
-            ((HomePageConverterDialogViewModel)this.DataContext).removepdffile();
+            viewModel.removepdffile();
         }
 
         private void OpenFileMenuItem_Click(object sender, System.Windows.RoutedEventArgs e)
         {
-            ((HomePageConverterDialogViewModel)this.DataContext).openfiledialog();
+            viewModel.openfiledialog();
         }
 
         private void ConverterTypeComboBox_SelectionChanged(object sender, SelectionChangedEventArgs e)
         {
             ((HomePageConverterDialogViewModel)this.DataContext).ChangeConverter(ConverterTypeComboBox.SelectedIndex);
         }
+
+        private void Grid_Drop(object sender, DragEventArgs e)
+        {
+
+            try
+            {
+                Point iconPoint = e.GetPosition(this);
+                dropHelper?.Drop((System.Runtime.InteropServices.ComTypes.IDataObject)e.Data, ref iconPoint, e.Effects);
+            }
+            catch (Exception ex)
+            {
+
+            }
+            string dropFile = "Drop";
+            if (e.Data.GetDataPresent(System.Windows.DataFormats.FileDrop))
+            {
+                DropGrid.Visibility = Visibility.Collapsed;
+                int count = ((System.Array)e.Data.GetData(System.Windows.DataFormats.FileDrop)).Length;
+                for (int i = 0; i < count; i++)
+                {
+                    dropFile = ((System.Array)e.Data.GetData(System.Windows.DataFormats.FileDrop)).GetValue(i).ToString(); ;
+                    //MessageBox.Show(dropFile);
+                    if (dropFile.ToLower().EndsWith("pdf"))
+                    { viewModel.addPDFFiles(dropFile); }
+                }
+            }
+        }
+        private void MainPage_DragEnter(object sender, DragEventArgs e)
+        {
+            DropGrid.Visibility = Visibility.Visible;
+            //页面编辑和缩略图
+            if ((e.OriginalSource as Image) != null)
+                return;
+            try
+            {
+                if (dropHelper == null)
+                {
+                    dropHelper = Activator.CreateInstance(Type.GetTypeFromCLSID(new Guid("4657278A-411B-11D2-839A-00C04FD918D0"))) as IDropTargetHelper;
+                }
+                Point iconPoint = e.GetPosition(this);
+                dropHelper?.DragEnter(new WindowInteropHelper(Window.GetWindow(this)).Handle, (System.Runtime.InteropServices.ComTypes.IDataObject)e.Data, ref iconPoint, e.Effects);
+            }
+            catch (Exception ex)
+            {
+
+            }
+
+        }
+
+        private void MainPage_DragOver(object sender, DragEventArgs e)
+        {
+
+            if ((e.OriginalSource as Image) != null)
+                return;
+            try
+            {
+                Point iconPoint = e.GetPosition(this);
+                dropHelper?.DragOver(ref iconPoint, e.Effects);
+            }
+            catch (Exception ex)
+            {
+
+            }
+
+        }
+
+        private void MainPage_DragLeave(object sender, DragEventArgs e)
+        {
+            DropGrid.Visibility = Visibility.Collapsed;
+            if ((e.OriginalSource as Image) != null)
+                return;
+            try
+            {
+                dropHelper?.DragLeave();
+            }
+            catch (Exception ex)
+            {
+
+            }
+
+        }
     }
 }

+ 60 - 49
PDF Office/Views/Dialog/HomePageToolsDialogs/HomePageBatchProcessing/HomePageRemoveDialog.xaml

@@ -6,8 +6,8 @@
              xmlns:prism="http://prismlibrary.com/"
              prism:ViewModelLocator.AutoWireViewModel="True"
              xmlns:convert="clr-namespace:PDF_Office.DataConvert"
-             d:DesignHeight="462"
-             d:DesignWidth="892"
+             d:DesignHeight="600"
+             d:DesignWidth="818"
              mc:Ignorable="d">
     <UserControl.Resources>
         <ResourceDictionary>
@@ -17,47 +17,58 @@
 
     <Grid IsEnabled="{Binding OptionsRemoveGridIsEnabled}">
         <Grid.ColumnDefinitions>
-            <ColumnDefinition Width="632"/>
-            <ColumnDefinition Width="260"/>
+            <ColumnDefinition Width="558*"  />
+            <ColumnDefinition Width="260*" />
         </Grid.ColumnDefinitions>
-        <Grid Grid.Column="0">
+        <Grid Grid.Column="0" >
             <Grid.RowDefinitions>
-                <RowDefinition Height="398"/>
-                <RowDefinition Height="72"/>
+                <RowDefinition Height="556*" />
+                <RowDefinition Height="64*"/>
             </Grid.RowDefinitions>
-            <Button Name="BtnBlank" Grid.Row="0" Background="Green" Height="300" Width="300" Visibility="{Binding AddFileVisibility}" Command="{Binding ADDPDFCommand}" >
-            </Button>
-            <ListView x:Name="listView" DataContext="{Binding PDFDataTable,Mode=TwoWay}" Grid.Row="0" Background="White"  ItemsSource="{Binding}" SelectionChanged="listView_SelectionChanged" Visibility="{Binding ElementName=BtnBlank, Path=Visibility, Converter={StaticResource unVisibleConvert}}">
-                <ListView.ContextMenu>
-                    <ContextMenu  StaysOpen="True" >
-                        <MenuItem Header="打开文件" Name="OpenFileMenuItem"  Click="OpenFileMenuItem_Click"/>
-                        <MenuItem Header="移除" Name="RemoveFileMenuItem" Click="RemoveFileMenuItem_Click"/>
-                    </ContextMenu>
-                </ListView.ContextMenu>
-                <ListView.View>
-                    <GridView>
-                        <GridViewColumn  Header="文档名"  Width="400" DisplayMemberBinding="{Binding FileName}"/>
-                        <GridViewColumn Header="大小" Width="100" DisplayMemberBinding="{Binding FileSize}"/>
-                        <GridViewColumn Header="状态" Width="80" >
-                            <GridViewColumn.CellTemplate>
-                                <DataTemplate>
-                                    <TextBlock Text="{Binding FileState}" TextDecorations="Underline" Foreground="Black"/>
-                                </DataTemplate>
-                            </GridViewColumn.CellTemplate>
-                        </GridViewColumn>
-                    </GridView>
-                </ListView.View>
-                <ListView.ItemContainerStyle>
-                    <Style TargetType="ListViewItem">
-                        <Setter Property="Height" Value="42"/>
-                        <Style.Triggers>
-                            <Trigger Property="ListView.AlternationIndex" Value="1">
-                                <Setter Property="Background" Value="LightGray"/>
-                            </Trigger>
-                        </Style.Triggers>
-                    </Style>
-                </ListView.ItemContainerStyle>
-            </ListView>
+            <Grid  Grid.Row="0" AllowDrop="True"
+                  Drop="Grid_Drop"
+                  DragEnter="MainPage_DragEnter"
+                  DragOver="MainPage_DragOver"
+                  DragLeave="MainPage_DragLeave"
+                  >
+                <Label Name="DropGrid" Background="#18A0FB" Opacity="0.5" Panel.ZIndex="1" Visibility="Collapsed"/>
+                <Button Name="BtnBlank"  Background="Green" Height="300" Width="300" Visibility="{Binding AddFileVisibility}" Command="{Binding ADDPDFCommand}" >
+                </Button>
+
+                <ListView x:Name="listView" DataContext="{Binding PDFDataTable,Mode=TwoWay}" Grid.Row="0" Background="White"  ItemsSource="{Binding}" SelectionChanged="listView_SelectionChanged" Visibility="{Binding ElementName=BtnBlank, Path=Visibility, Converter={StaticResource unVisibleConvert}}">
+                    <ListView.ContextMenu>
+                        <ContextMenu  StaysOpen="True" >
+                            <MenuItem Header="打开文件" Name="OpenFileMenuItem"  Click="OpenFileMenuItem_Click"/>
+                            <MenuItem Header="移除" Name="RemoveFileMenuItem" Click="RemoveFileMenuItem_Click"/>
+                        </ContextMenu>
+                    </ListView.ContextMenu>
+                    <ListView.View>
+                        <GridView>
+                            <GridViewColumn  Header="文档名"  Width="400" DisplayMemberBinding="{Binding FileName}"/>
+                            <GridViewColumn Header="大小" Width="100" DisplayMemberBinding="{Binding FileSize}"/>
+                            <GridViewColumn Header="状态" Width="80" >
+                                <GridViewColumn.CellTemplate>
+                                    <DataTemplate>
+                                        <TextBlock Text="{Binding FileState}" TextDecorations="Underline" Foreground="Black"/>
+                                    </DataTemplate>
+                                </GridViewColumn.CellTemplate>
+                            </GridViewColumn>
+                        </GridView>
+                    </ListView.View>
+                    <ListView.ItemContainerStyle>
+                        <Style TargetType="ListViewItem">
+                            <Setter Property="Height" Value="42"/>
+                            <Style.Triggers>
+                                <Trigger Property="ListView.AlternationIndex" Value="1">
+                                    <Setter Property="Background" Value="LightGray"/>
+                                </Trigger>
+                            </Style.Triggers>
+                        </Style>
+                    </ListView.ItemContainerStyle>
+                </ListView>
+            </Grid>
+
+
             <Grid Grid.Row="1">
                 <Button x:Name="MenuBtn"  Width="113"
                     Height="40"
@@ -110,27 +121,27 @@
                 <RowDefinition Height="*"/>
                 <RowDefinition Height="72"/>
             </Grid.RowDefinitions>
-            <StackPanel Orientation="Vertical" Margin="15,16,0,0" Grid.Row="0">
-                <TextBlock Text="Options"/>
+            <StackPanel Orientation="Vertical" Margin="16,14,0,0" Grid.Row="0">
+                <TextBlock Text="Options" FontSize="14" Width="228" Height=" 22" FontFamily="Segoe UI" TextBlock.Foreground="#252629" HorizontalAlignment="Left"/>
                 <CheckBox  IsChecked="{Binding SecurityIsRemove}" Margin="0,8,0,0" >
-                    <TextBlock Text="安全"/>
+                    <TextBlock Text="安全" FontSize="14" Width="228" Height=" 22" FontFamily="Segoe UI" TextBlock.Foreground="#252629"/>
                 </CheckBox>
                 <CheckBox  IsChecked="{Binding WatermarkIsRemove}" Margin="0,8,0,0">
-                    <TextBlock Text="水印"/>
+                    <TextBlock Text="水印" FontSize="14" Width="228" Height=" 22" FontFamily="Segoe UI" TextBlock.Foreground="#252629"/>
                 </CheckBox>
                 <CheckBox  IsChecked="{Binding BackgroundIsRemove}" Margin="0,8,0,0">
-                    <TextBlock Text="背景"/>
+                    <TextBlock Text="背景" FontSize="14" Width="228" Height=" 22" FontFamily="Segoe UI" TextBlock.Foreground="#252629"/>
                 </CheckBox>
                 <CheckBox IsChecked="{Binding HeaderFooterIsRemove}"  Margin="0,8,0,0">
-                    <TextBlock Text="页眉页脚"/>
+                    <TextBlock Text="页眉页脚" FontSize="14" Width="228" Height=" 22" FontFamily="Segoe UI" TextBlock.Foreground="#252629"/>
                 </CheckBox>
                 <CheckBox IsChecked="{Binding BatesIsRemove}"  Margin="0,8,0,0">
-                    <TextBlock Text="Bates码"/>
+                    <TextBlock Text="Bates码" FontSize="14" Width="228" Height=" 22" FontFamily="Segoe UI" TextBlock.Foreground="#252629"/>
                 </CheckBox>
             </StackPanel>
             <Grid Grid.Row="2">
-                <Button Height="40" Width="228" Background="Black" Command="{Binding CompressCommand}">
-                    <TextBlock Text="压缩" FontSize="18" Foreground="White"/>
+                <Button Height="40" Width="228" Background="Black" Command="{Binding OptionsRemoveCommand}">
+                    <TextBlock Text="Remove" FontSize="18" Foreground="White"/>
                 </Button>
             </Grid>
         </Grid>

+ 132 - 2
PDF Office/Views/Dialog/HomePageToolsDialogs/HomePageBatchProcessing/HomePageRemoveDialog.xaml.cs

@@ -1,15 +1,145 @@
-using System.Windows.Controls;
+using PDF_Office.Helper;
+using PDF_Office.ViewModels.Dialog.HomePageToolsDialogs.HomePageBatchProcessing;
+using PDF_Office.ViewModels.EditTools.Watermark;
+using System;
+using System.Collections;
+using System.Windows;
+using System.Windows.Controls;
+using System.Windows.Interop;
+using System.Windows.Media;
 
-namespace PDF_Office.Views.Dialog.HomePageToolsDialogs
+namespace PDF_Office.Views.Dialog.HomePageToolsDialogs.HomePageBatchProcessing
 {
     /// <summary>
     /// Interaction logic for HomePageRemoveDialog
     /// </summary>
     public partial class HomePageRemoveDialog : UserControl
     {
+        private IDropTargetHelper dropHelper;
+        private HomePageRemoveDialogViewModel viewModel;
         public HomePageRemoveDialog()
         {
             InitializeComponent();
+            viewModel = this.DataContext as HomePageRemoveDialogViewModel;
         }
+        private void Menu_Click(object sender, System.Windows.RoutedEventArgs e)
+        {
+            menuPop1.IsOpen = true;
+        }
+
+        private void listView_SelectionChanged(object sender, SelectionChangedEventArgs e)
+        {
+            IList list = listView.SelectedItems;
+            var lists = listView.Items;
+            System.Data.DataRowView a;
+            viewModel.fileNamesView.Clear();
+            foreach (var item in list)
+            {
+                a = (System.Data.DataRowView)item;
+                viewModel.fileNamesView.Add(lists.IndexOf(a));
+            }
+            if (viewModel.fileNamesView.Count > 0)
+            {
+                viewModel.RemoveIsEnable = "True";
+            }
+            else
+            {
+                viewModel.RemoveIsEnable = "False";
+            }
+
+        }
+
+        private void RemoveFileMenuItem_Click(object sender, System.Windows.RoutedEventArgs e)
+        {
+            viewModel.removepdffile();
+        }
+
+        private void OpenFileMenuItem_Click(object sender, System.Windows.RoutedEventArgs e)
+        {
+            viewModel.openfiledialog();
+        }
+
+        private void Grid_Drop(object sender, DragEventArgs e)
+        {
+            
+            try
+            {
+                Point iconPoint = e.GetPosition(this);
+                dropHelper?.Drop((System.Runtime.InteropServices.ComTypes.IDataObject)e.Data, ref iconPoint, e.Effects);
+            }
+            catch (Exception ex)
+            {
+
+            }
+            string dropFile = "Drop";
+            if (e.Data.GetDataPresent(System.Windows.DataFormats.FileDrop))
+            {
+                DropGrid.Visibility = Visibility.Collapsed;
+                int count = ((System.Array)e.Data.GetData(System.Windows.DataFormats.FileDrop)).Length;
+                for (int i = 0; i < count; i++)
+                {
+                    dropFile = ((System.Array)e.Data.GetData(System.Windows.DataFormats.FileDrop)).GetValue(i).ToString(); ;
+                    //MessageBox.Show(dropFile);
+                    if (dropFile.ToLower().EndsWith("pdf"))
+                    { viewModel.addPDFFiles(dropFile); }
+                }
+            }
+        }
+        private void MainPage_DragEnter(object sender, DragEventArgs e)
+        {
+            DropGrid.Visibility=Visibility.Visible;
+            //页面编辑和缩略图
+            if ((e.OriginalSource as Image) != null)
+                return;
+            try
+            {
+                if (dropHelper == null)
+                {
+                    dropHelper = Activator.CreateInstance(Type.GetTypeFromCLSID(new Guid("4657278A-411B-11D2-839A-00C04FD918D0"))) as IDropTargetHelper;
+                }
+                Point iconPoint = e.GetPosition(this);
+                dropHelper?.DragEnter(new WindowInteropHelper(Window.GetWindow(this)).Handle, (System.Runtime.InteropServices.ComTypes.IDataObject)e.Data, ref iconPoint, e.Effects);
+            }
+            catch (Exception ex)
+            {
+
+            }
+            
+        }
+
+        private void MainPage_DragOver(object sender, DragEventArgs e)
+        {
+           
+            if ((e.OriginalSource as Image) != null)
+                return;
+            try
+            {
+                Point iconPoint = e.GetPosition(this);
+                dropHelper?.DragOver(ref iconPoint, e.Effects);
+            }
+            catch (Exception ex)
+            {
+
+            }
+            
+        }
+
+        private void MainPage_DragLeave(object sender, DragEventArgs e)
+        {
+            DropGrid.Visibility = Visibility.Collapsed;
+            if ( (e.OriginalSource as Image) != null)
+                return;
+            try
+            {
+                dropHelper?.DragLeave();
+            }
+            catch (Exception ex)
+            {
+
+            }
+            
+        }
+
+
     }
 }

+ 47 - 39
PDF Office/Views/Dialog/HomePageToolsDialogs/HomePageBatchProcessing/HomePageSetPasswordDialog.xaml

@@ -6,8 +6,8 @@
              xmlns:prism="http://prismlibrary.com/"
              prism:ViewModelLocator.AutoWireViewModel="True"
              xmlns:convert="clr-namespace:PDF_Office.DataConvert"
-             d:DesignHeight="462"
-             d:DesignWidth="892"
+             d:DesignHeight="600"
+             d:DesignWidth="818"
              mc:Ignorable="d">
     <UserControl.Resources>
         <ResourceDictionary>
@@ -17,47 +17,55 @@
 
     <Grid IsEnabled="{Binding SafetyGridIsEnabled}">
         <Grid.ColumnDefinitions>
-            <ColumnDefinition Width="632"/>
-            <ColumnDefinition Width="260"/>
+            <ColumnDefinition Width="558*"/>
+            <ColumnDefinition Width="260*"/>
         </Grid.ColumnDefinitions>
         <Grid Grid.Column="0">
             <Grid.RowDefinitions>
-                <RowDefinition Height="398"/>
-                <RowDefinition Height="72"/>
+                <RowDefinition Height="556*"/>
+                <RowDefinition Height="64*"/>
             </Grid.RowDefinitions>
-            <Button Name="BtnBlank" Grid.Row="0" Background="Green" Height="300" Width="300" Visibility="{Binding AddFileVisibility}" Command="{Binding ADDPDFCommand}">
-            </Button>
-            <ListView x:Name="listView" DataContext="{Binding PDFDataTable,Mode=TwoWay}" Grid.Row="0" Background="White"  ItemsSource="{Binding}" SelectionChanged="listView_SelectionChanged"  Visibility="{Binding ElementName=BtnBlank, Path=Visibility, Converter={StaticResource unVisibleConvert}}">
-                <ListView.ContextMenu>
-                    <ContextMenu  StaysOpen="True" >
-                        <MenuItem Header="打开文件" Name="OpenFileMenuItem"  Click="OpenFileMenuItem_Click"/>
-                        <MenuItem Header="移除" Name="RemoveFileMenuItem" Click="RemoveFileMenuItem_Click"/>
-                    </ContextMenu>
-                </ListView.ContextMenu>
-                <ListView.View>
-                    <GridView>
-                        <GridViewColumn  Header="文档名"  Width="400" DisplayMemberBinding="{Binding FileName}"/>
-                        <GridViewColumn Header="大小" Width="100" DisplayMemberBinding="{Binding FileSize}"/>
-                        <GridViewColumn Header="状态" Width="80" >
-                            <GridViewColumn.CellTemplate>
-                                <DataTemplate>
-                                    <TextBlock Text="{Binding FileState}" TextDecorations="Underline" Foreground="Black"/>
-                                </DataTemplate>
-                            </GridViewColumn.CellTemplate>
-                        </GridViewColumn>
-                    </GridView>
-                </ListView.View>
-                <ListView.ItemContainerStyle>
-                    <Style TargetType="ListViewItem">
-                        <Setter Property="Height" Value="42"/>
-                        <Style.Triggers>
-                            <Trigger Property="ListView.AlternationIndex" Value="1">
-                                <Setter Property="Background" Value="LightGray"/>
-                            </Trigger>
-                        </Style.Triggers>
-                    </Style>
-                </ListView.ItemContainerStyle>
-            </ListView>
+            <Grid  Grid.Row="0" AllowDrop="True"
+                  Drop="Grid_Drop"
+                  DragEnter="MainPage_DragEnter"
+                  DragOver="MainPage_DragOver"
+                  DragLeave="MainPage_DragLeave"
+                  >
+                <Label Name="DropGrid" Background="#18A0FB" Opacity="0.5" Panel.ZIndex="1" Visibility="Collapsed"/>
+                <Button Name="BtnBlank"  Background="Green" Height="300" Width="300" Visibility="{Binding AddFileVisibility}" Command="{Binding ADDPDFCommand}" >
+                </Button>
+                <ListView x:Name="listView" DataContext="{Binding PDFDataTable,Mode=TwoWay}"  Background="White"  ItemsSource="{Binding}" SelectionChanged="listView_SelectionChanged"  Visibility="{Binding ElementName=BtnBlank, Path=Visibility, Converter={StaticResource unVisibleConvert}}">
+                    <ListView.ContextMenu>
+                        <ContextMenu  StaysOpen="True" >
+                            <MenuItem Header="打开文件" Name="OpenFileMenuItem"  Click="OpenFileMenuItem_Click"/>
+                            <MenuItem Header="移除" Name="RemoveFileMenuItem" Click="RemoveFileMenuItem_Click"/>
+                        </ContextMenu>
+                    </ListView.ContextMenu>
+                    <ListView.View>
+                        <GridView>
+                            <GridViewColumn  Header="文档名"  Width="400" DisplayMemberBinding="{Binding FileName}"/>
+                            <GridViewColumn Header="大小" Width="100" DisplayMemberBinding="{Binding FileSize}"/>
+                            <GridViewColumn Header="状态" Width="80" >
+                                <GridViewColumn.CellTemplate>
+                                    <DataTemplate>
+                                        <TextBlock Text="{Binding FileState}" TextDecorations="Underline" Foreground="Black"/>
+                                    </DataTemplate>
+                                </GridViewColumn.CellTemplate>
+                            </GridViewColumn>
+                        </GridView>
+                    </ListView.View>
+                    <ListView.ItemContainerStyle>
+                        <Style TargetType="ListViewItem">
+                            <Setter Property="Height" Value="42"/>
+                            <Style.Triggers>
+                                <Trigger Property="ListView.AlternationIndex" Value="1">
+                                    <Setter Property="Background" Value="LightGray"/>
+                                </Trigger>
+                            </Style.Triggers>
+                        </Style>
+                    </ListView.ItemContainerStyle>
+                </ListView>
+            </Grid>
             <Grid Grid.Row="1">
                 <Button x:Name="MenuBtn"  Width="113"
                     Height="40"

+ 97 - 13
PDF Office/Views/Dialog/HomePageToolsDialogs/HomePageBatchProcessing/HomePageSetPasswordDialog.xaml.cs

@@ -1,10 +1,12 @@
-using PDF_Office.Model.Dialog.HomePageToolsDialogs.HomePageBatchProcessing;
+using PDF_Office.Helper;
+using PDF_Office.Model.Dialog.HomePageToolsDialogs.HomePageBatchProcessing;
 using PDF_Office.Model.Dialog.ToolsDialogs.SaftyDialogs;
 using PDF_Office.ViewModels.Dialog.HomePageToolsDialogs.HomePageBatchProcessing;
 using System;
 using System.Collections;
 using System.Windows;
 using System.Windows.Controls;
+using System.Windows.Interop;
 
 namespace PDF_Office.Views.Dialog.HomePageToolsDialogs.HomePageBatchProcessing
 {
@@ -13,7 +15,8 @@ namespace PDF_Office.Views.Dialog.HomePageToolsDialogs.HomePageBatchProcessing
     /// </summary>
     public partial class HomePageSetPasswordDialog : UserControl
     {
-
+        private HomePageSetPasswordDialogViewModel viewModel;
+        private IDropTargetHelper dropHelper;
         private Boolean canOpenPasswordBoxHasFocus = false;
         private Boolean canOpenTextBoxHasFocus = false;
 
@@ -35,6 +38,7 @@ namespace PDF_Office.Views.Dialog.HomePageToolsDialogs.HomePageBatchProcessing
         public HomePageSetPasswordDialog()
         {
             InitializeComponent();
+            viewModel= this.DataContext as HomePageSetPasswordDialogViewModel;
         }
 
 
@@ -48,31 +52,31 @@ namespace PDF_Office.Views.Dialog.HomePageToolsDialogs.HomePageBatchProcessing
             IList list = listView.SelectedItems;
             var lists = listView.Items;
             System.Data.DataRowView a;
-            ((HomePageSetPasswordDialogViewModel)this.DataContext).fileNamesView.Clear();
+            viewModel.fileNamesView.Clear();
             foreach (var item in list)
             {
                 a = (System.Data.DataRowView)item;
-                ((HomePageSetPasswordDialogViewModel)this.DataContext).fileNamesView.Add(lists.IndexOf(a));
+                viewModel.fileNamesView.Add(lists.IndexOf(a));
             }
-            if (((HomePageSetPasswordDialogViewModel)this.DataContext).fileNamesView.Count > 0)
+            if (viewModel.fileNamesView.Count > 0)
             {
-                ((HomePageSetPasswordDialogViewModel)this.DataContext).RemoveIsEnable = "True";
+                viewModel.RemoveIsEnable = "True";
             }
             else
             {
-                ((HomePageSetPasswordDialogViewModel)this.DataContext).RemoveIsEnable = "False";
+                viewModel.RemoveIsEnable = "False";
             }
 
         }
 
         private void RemoveFileMenuItem_Click(object sender, System.Windows.RoutedEventArgs e)
         {
-            ((HomePageSetPasswordDialogViewModel)this.DataContext).removepdffile();
+            viewModel.removepdffile();
         }
 
         private void OpenFileMenuItem_Click(object sender, System.Windows.RoutedEventArgs e)
         {
-            ((HomePageSetPasswordDialogViewModel)this.DataContext).openfiledialog();
+            viewModel.openfiledialog();
         }
 
         private void PasswordBox_GotFocus(object sender, RoutedEventArgs e)
@@ -116,7 +120,7 @@ namespace PDF_Office.Views.Dialog.HomePageToolsDialogs.HomePageBatchProcessing
                 }
                 CanOpenTextBox.Text = CanOpenPasswordBox.Password;
                 HomePageSetPasswordDialogModel.PasswordForOpen = CanOpenTextBox.Text;
-                ((HomePageSetPasswordDialogViewModel)this.DataContext).DelegateCanOpenTextChangedCommand.Execute();
+                viewModel.DelegateCanOpenTextChangedCommand.Execute();
             }
             else if (passwordBox.Name == canEditPasswordBoxName)
             {
@@ -126,7 +130,7 @@ namespace PDF_Office.Views.Dialog.HomePageToolsDialogs.HomePageBatchProcessing
                 }
                 CanEditTextBox.Text = CanEditPasswordBox.Password;
                 HomePageSetPasswordDialogModel.PasswordForEdit = CanEditTextBox.Text;
-                ((HomePageSetPasswordDialogViewModel)this.DataContext).DelegateCanOpenTextChangedCommand.Execute();
+                viewModel.DelegateCanOpenTextChangedCommand.Execute();
             }
         }
 
@@ -141,7 +145,7 @@ namespace PDF_Office.Views.Dialog.HomePageToolsDialogs.HomePageBatchProcessing
                 }
                 CanOpenPasswordBox.Password = CanOpenTextBox.Text;
                 HomePageSetPasswordDialogModel.PasswordForOpen = CanOpenPasswordBox.Password;
-                ((HomePageSetPasswordDialogViewModel)this.DataContext).DelegateCanOpenTextChangedCommand.Execute();
+                viewModel.DelegateCanOpenTextChangedCommand.Execute();
             }
             else if (textBox.Name == canEditTextBoxName)
             {
@@ -149,7 +153,7 @@ namespace PDF_Office.Views.Dialog.HomePageToolsDialogs.HomePageBatchProcessing
                 { return; }
                 CanEditPasswordBox.Password = CanEditTextBox.Text;
                 HomePageSetPasswordDialogModel.PasswordForEdit = CanEditPasswordBox.Password;
-                ((HomePageSetPasswordDialogViewModel)this.DataContext).DelegateCanOpenTextChangedCommand.Execute();
+                viewModel.DelegateCanOpenTextChangedCommand.Execute();
             }
         }
 
@@ -194,5 +198,85 @@ namespace PDF_Office.Views.Dialog.HomePageToolsDialogs.HomePageBatchProcessing
                 ShowEditTextBoxEyeLabel.Visibility = Visibility.Hidden;
             }
         }
+        private void Grid_Drop(object sender, DragEventArgs e)
+        {
+
+            try
+            {
+                Point iconPoint = e.GetPosition(this);
+                dropHelper?.Drop((System.Runtime.InteropServices.ComTypes.IDataObject)e.Data, ref iconPoint, e.Effects);
+            }
+            catch (Exception ex)
+            {
+
+            }
+            string dropFile = "Drop";
+            if (e.Data.GetDataPresent(System.Windows.DataFormats.FileDrop))
+            {
+                DropGrid.Visibility = Visibility.Collapsed;
+                int count = ((System.Array)e.Data.GetData(System.Windows.DataFormats.FileDrop)).Length;
+                for (int i = 0; i < count; i++)
+                {
+                    dropFile = ((System.Array)e.Data.GetData(System.Windows.DataFormats.FileDrop)).GetValue(i).ToString(); ;
+                    //MessageBox.Show(dropFile);
+                    if (dropFile.ToLower().EndsWith("pdf"))
+                    { viewModel.addPDFFiles(dropFile); }
+                }
+            }
+        }
+        private void MainPage_DragEnter(object sender, DragEventArgs e)
+        {
+            DropGrid.Visibility = Visibility.Visible;
+            //页面编辑和缩略图
+            if ((e.OriginalSource as Image) != null)
+                return;
+            try
+            {
+                if (dropHelper == null)
+                {
+                    dropHelper = Activator.CreateInstance(Type.GetTypeFromCLSID(new Guid("4657278A-411B-11D2-839A-00C04FD918D0"))) as IDropTargetHelper;
+                }
+                Point iconPoint = e.GetPosition(this);
+                dropHelper?.DragEnter(new WindowInteropHelper(Window.GetWindow(this)).Handle, (System.Runtime.InteropServices.ComTypes.IDataObject)e.Data, ref iconPoint, e.Effects);
+            }
+            catch (Exception ex)
+            {
+
+            }
+
+        }
+
+        private void MainPage_DragOver(object sender, DragEventArgs e)
+        {
+
+            if ((e.OriginalSource as Image) != null)
+                return;
+            try
+            {
+                Point iconPoint = e.GetPosition(this);
+                dropHelper?.DragOver(ref iconPoint, e.Effects);
+            }
+            catch (Exception ex)
+            {
+
+            }
+
+        }
+
+        private void MainPage_DragLeave(object sender, DragEventArgs e)
+        {
+            DropGrid.Visibility = Visibility.Collapsed;
+            if ((e.OriginalSource as Image) != null)
+                return;
+            try
+            {
+                dropHelper?.DragLeave();
+            }
+            catch (Exception ex)
+            {
+
+            }
+
+        }
     }
 }