Browse Source

页面范围控件-输入错误变红,转档、合并-取消不弹页面范围错误

liyijie 1 year ago
parent
commit
cda56e0254
20 changed files with 230 additions and 46 deletions
  1. 7 2
      PDF Office/CustomControl/WritableComboBox.xaml
  2. 9 2
      PDF Office/CustomControl/WritableComboBox.xaml.cs
  3. 36 26
      PDF Office/ViewModels/Dialog/ConverterDialogs/ConverterCSVDialogViewModel.cs
  4. 15 2
      PDF Office/ViewModels/Dialog/ConverterDialogs/ConverterExcelDialogViewModel.cs
  5. 11 0
      PDF Office/ViewModels/Dialog/ConverterDialogs/ConverterHTMLDialogViewModel.cs
  6. 12 0
      PDF Office/ViewModels/Dialog/ConverterDialogs/ConverterImgDialogViewModel.cs
  7. 12 0
      PDF Office/ViewModels/Dialog/ConverterDialogs/ConverterPPTDialogViewModel.cs
  8. 12 1
      PDF Office/ViewModels/Dialog/ConverterDialogs/ConverterRTFDialogViewModel.cs
  9. 12 0
      PDF Office/ViewModels/Dialog/ConverterDialogs/ConverterTextDialogViewModel.cs
  10. 12 0
      PDF Office/ViewModels/Dialog/ConverterDialogs/ConverterWordDialogViewModel.cs
  11. 28 4
      PDF Office/ViewModels/Dialog/ToolsDialogs/MergeDialogViewModel.cs
  12. 7 1
      PDF Office/Views/Dialog/ConverterDialogs/ConverterCSVDialog.xaml
  13. 7 1
      PDF Office/Views/Dialog/ConverterDialogs/ConverterExcelDialog.xaml
  14. 7 1
      PDF Office/Views/Dialog/ConverterDialogs/ConverterHTMLDialog.xaml
  15. 7 1
      PDF Office/Views/Dialog/ConverterDialogs/ConverterImgDialog.xaml
  16. 7 1
      PDF Office/Views/Dialog/ConverterDialogs/ConverterPPTDialog.xaml
  17. 7 1
      PDF Office/Views/Dialog/ConverterDialogs/ConverterRTFDialog.xaml
  18. 7 1
      PDF Office/Views/Dialog/ConverterDialogs/ConverterTextDialog.xaml
  19. 7 1
      PDF Office/Views/Dialog/ConverterDialogs/ConverterWordDialog.xaml
  20. 8 1
      PDF Office/Views/Dialog/ToolsDialogs/MergeDialog.xaml

+ 7 - 2
PDF Office/CustomControl/WritableComboBox.xaml

@@ -83,10 +83,14 @@
             <ComboBoxItem x:Name="EvenPageItem" IsEnabled="{Binding RelativeSource={RelativeSource Mode=FindAncestor, AncestorType=local:WritableComboBox}, Path=EvenPageIsEnabled}" Tag="EvenPage"/>
             <ComboBoxItem x:Name="CustomPageItem" Tag="CustomPage"/>
         </ComboBox>
-        <Border MinWidth="58" Grid.Column="1"
+        <Border  MinWidth="58" Grid.Column="1"
             MinHeight="24" BorderBrush="{StaticResource color.field.border.focus}" Effect="{StaticResource shadow.blue-0-4}"  Visibility="{Binding ElementName=writableTextBox, Path=IsFocused, Converter={StaticResource BoolToVisible}}" BorderThickness="1" CornerRadius="4" Panel.ZIndex="1">
         </Border>
-            <TextBox
+        <Border x:Name="ErrorBorder"  MinWidth="58" Grid.Column="1"
+            MinHeight="24" BorderBrush="{StaticResource color.field.border.error}" Effect="{StaticResource shadow.error.s}"  Visibility="Collapsed" BorderThickness="1" CornerRadius="4" Panel.ZIndex="2">
+        </Border>
+
+        <TextBox
             x:Name="writableTextBox"
             Grid.Column="0"
             MinHeight="{Binding ElementName=writableComboBox, Path=MinHeight}"
@@ -96,6 +100,7 @@
             HorizontalAlignment="Left"
             VerticalContentAlignment="Center"
             Panel.ZIndex="2"
+            GotFocus="writableTextBox_GotFocus"
             LostFocus="writableTextBox_LostFocus"
             PreviewKeyDown="writableTextBox_PreviewKeyDown"
             InputMethod.IsInputMethodEnabled="False"

+ 9 - 2
PDF Office/CustomControl/WritableComboBox.xaml.cs

@@ -26,7 +26,7 @@ namespace PDF_Master.CustomControl
     public partial class WritableComboBox : UserControl
     {
         //判断鼠标是否悬停在此按钮上,通过MouseLeave-Enter赋值。
-        private bool IsloseFocus = true;
+        public bool IsloseFocus = true;
         public bool IsCurrentPage
         {
             get { return (bool)GetValue(IsCurrentPageProperty); }
@@ -374,7 +374,8 @@ namespace PDF_Master.CustomControl
 
         private void writableTextBox_LostFocus(object sender, RoutedEventArgs e)
         {
-            if (!IsloseFocus) { return; }
+            ErrorBorder.Visibility = Visibility.Collapsed;
+            if (!IsloseFocus) {  return; }
             if (CommonHelper.GetPagesInRange(ref pageIndexList, writableTextBox.Text, MaxPageRange, new char[] { ',' }, new char[] { '-' }))
             {
                 PageIndexList = pageIndexList;
@@ -384,6 +385,7 @@ namespace PDF_Master.CustomControl
             {
                 AlertsMessage alertsMessage = new AlertsMessage();
                 alertsMessage.ShowDialog("", App.MainPageLoader.GetString("PageRangeWarning"), App.ServiceLoader.GetString("Text_ok"));
+                ErrorBorder.Visibility = Visibility.Visible;
                 writableTextBox.Text = "";
             }
         }
@@ -422,5 +424,10 @@ namespace PDF_Master.CustomControl
         {
             IsloseFocus = false;
         }
+
+        private void writableTextBox_GotFocus(object sender, RoutedEventArgs e)
+        {
+            ErrorBorder.Visibility = Visibility.Collapsed;
+        }
     }
 }

+ 36 - 26
PDF Office/ViewModels/Dialog/ConverterDialogs/ConverterCSVDialogViewModel.cs

@@ -24,7 +24,7 @@ using DialogResult = Prism.Services.Dialogs.DialogResult;
 
 namespace PDF_Master.ViewModels.Dialog.ConverterDialogs
 {
-    public class ConverterCSVDialogViewModel : BindableBase,IDialogAware
+    public class ConverterCSVDialogViewModel : BindableBase, IDialogAware
     {
         #region 文案
 
@@ -125,7 +125,7 @@ namespace PDF_Master.ViewModels.Dialog.ConverterDialogs
 
         public IDialogService dialogs;
 
-        public string CurrentPageIndex="1";
+        public string CurrentPageIndex = "1";
 
         public string PageRangeText { set; get; } = "0";
 
@@ -157,7 +157,7 @@ namespace PDF_Master.ViewModels.Dialog.ConverterDialogs
 
         public DelegateCommand SetCustomPageRangeCommand { get; set; }
 
-        
+        public DelegateCommand<object> PreviewCancelDownCommand { get; set; }
 
         public DelegateCommand BatchConverterCommand { get; set; }
 
@@ -172,6 +172,7 @@ namespace PDF_Master.ViewModels.Dialog.ConverterDialogs
             CmbPageSelectionChanged = new DelegateCommand<object>(CmbPageSelectionChangedEvent);
             CmbPageTextChanged = new DelegateCommand<object>(CmbPageTextChangedEvent);
             SetCustomPageRangeCommand = new DelegateCommand(SetCustomPageRange);
+            PreviewCancelDownCommand = new DelegateCommand<object>(PreviewCancelDown);
             BatchConverterCommand = new DelegateCommand(BatchConverter);
             dialogs = dialogService;
         }
@@ -180,14 +181,14 @@ namespace PDF_Master.ViewModels.Dialog.ConverterDialogs
 
         public void SetCustomPageRange()
         {
-            if (PageRangeSelectIndex=="4")
+            if (PageRangeSelectIndex == "4")
             {
-                
+
                 List<int> PageIndexLists = new List<int>();
                 if (!CommonHelper.GetPagesInRange(ref PageIndexLists, PageRangeText, currentViewer.Document.PageCount, new char[] { ',' }, new char[] { '-' }))
                 { //TODO
                     AlertsMessage alertsMessage = new AlertsMessage();
-                    alertsMessage.ShowDialog("", App.MainPageLoader.GetString("PageRangeWarning"),App.ServiceLoader.GetString("Text_ok"));
+                    alertsMessage.ShowDialog("", App.MainPageLoader.GetString("PageRangeWarning"), App.ServiceLoader.GetString("Text_ok"));
                     if (alertsMessage.result == ContentResult.Ok)
                     {
                         return;
@@ -201,7 +202,7 @@ namespace PDF_Master.ViewModels.Dialog.ConverterDialogs
                         //});
                         return;
                     }
-                   
+
                 }
             }
         }
@@ -218,10 +219,10 @@ namespace PDF_Master.ViewModels.Dialog.ConverterDialogs
                 var currentViewer = this.currentViewer;
                 string PageRange = "";
                 var PageRangeText = this.PageRangeText;
-                if (PageRangeSelectIndex == "0" || PageRangeSelectIndex == "2" || PageRangeSelectIndex == "3"|| PageRangeSelectIndex == "4")
+                if (PageRangeSelectIndex == "0" || PageRangeSelectIndex == "2" || PageRangeSelectIndex == "3" || PageRangeSelectIndex == "4")
                 {
                     if (PageRangeSelectIndex == "4") { HomePageEditHelper.GetPagerange("0", currentViewer, ref PageRange, PageRangeText, true); } else { HomePageEditHelper.GetPagerange(PageRangeSelectIndex, currentViewer, ref PageRange, PageRangeText, true); }
-                    
+
                     char[] enumerationSeparator = new char[] { ',' };
                     char[] rangeSeparator = new char[] { '-' };
                     if (!CommonHelper.GetPagesInRange(ref ConverterPreview.PageIndexLists, PageRange, currentViewer.Document.PageCount, enumerationSeparator, rangeSeparator))
@@ -238,19 +239,19 @@ namespace PDF_Master.ViewModels.Dialog.ConverterDialogs
                 {
                     char[] enumerationSeparator = new char[] { ',' };
                     char[] rangeSeparator = new char[] { '-' };
-                    if (!CommonHelper.GetPagesInRange(ref ConverterPreview.PageIndexLists, (currentViewer.CurrentIndex+1).ToString()
+                    if (!CommonHelper.GetPagesInRange(ref ConverterPreview.PageIndexLists, (currentViewer.CurrentIndex + 1).ToString()
 , currentViewer.Document.PageCount, enumerationSeparator, rangeSeparator))
                     { //TODO
-                        
+
                         Trace.WriteLine("输入不对");
                         AlertsMessage alertsMessage = new AlertsMessage();
                         alertsMessage.ShowDialog("", App.MainPageLoader.GetString("PageRangeWarning"), App.ServiceLoader.GetString("Text_ok"));
                         return;
                     }
-                   this.CurrentPageIndex = (ConverterPreview.PageIndexLists.Last<int>() + 1).ToString();
+                    this.CurrentPageIndex = (ConverterPreview.PageIndexLists.Last<int>() + 1).ToString();
                 }
                 // ConverterPreview.PageIndex.Text = (ConverterPreview.PageIndexLists.Last<int>() + 1).ToString();
-                ConverterPreview.PageIndex.Text= ConverterPreview.PageIndexLists.Count.ToString();
+                ConverterPreview.PageIndex.Text = ConverterPreview.PageIndexLists.Count.ToString();
                 ConverterPreview.CurrentIndex = 0;
             }
         }
@@ -273,7 +274,7 @@ namespace PDF_Master.ViewModels.Dialog.ConverterDialogs
                     if (!CommonHelper.GetPagesInRange(ref ConverterPreview.PageIndexLists, PageRange, currentViewer.Document.PageCount, enumerationSeparator, rangeSeparator))
                     { //TODO
                         HomePageEditHelper.GetPagerange("0", currentViewer, ref PageRange, PageRangeText, true);
-                       
+
                         if (!CommonHelper.GetPagesInRange(ref ConverterPreview.PageIndexLists, PageRange, currentViewer.Document.PageCount, enumerationSeparator, rangeSeparator))
                         { //TODO
                             ConverterPreview.PageIndexLists.Add(0);
@@ -296,7 +297,8 @@ namespace PDF_Master.ViewModels.Dialog.ConverterDialogs
             }
         }
 
-        private void BatchConverter() {
+        private void BatchConverter()
+        {
             DialogParameters convertpdftoword = new DialogParameters();
             convertpdftoword.Add(ParameterNames.BatchProcessing_Name, "0");
             convertpdftoword.Add("ConverterTypeIndex", 4);
@@ -311,8 +313,15 @@ namespace PDF_Master.ViewModels.Dialog.ConverterDialogs
         {
             RequestClose.Invoke(new DialogResult(ButtonResult.Cancel));
         }
-
-        private  void converter()
+        private void PreviewCancelDown(object e)
+        {
+            var PageRangeComboBox = e as WritableComboBox;
+            if (PageRangeComboBox != null)
+            {
+                PageRangeComboBox.IsloseFocus= false;
+            }
+        }
+        private void converter()
         {
             if (PageRangeSelectIndex == "4")
             {
@@ -338,7 +347,7 @@ namespace PDF_Master.ViewModels.Dialog.ConverterDialogs
 
                 }
             }
-            if (ConverterCSVModel.IsCustomFileName) 
+            if (ConverterCSVModel.IsCustomFileName)
             {
                 System.Windows.Forms.SaveFileDialog sfd = new System.Windows.Forms.SaveFileDialog();
                 /*
@@ -363,7 +372,7 @@ namespace PDF_Master.ViewModels.Dialog.ConverterDialogs
                     catch
                     {
                         AlertsMessage alertsMessage = new AlertsMessage();
-                        alertsMessage.ShowDialog("",App.MainPageLoader.GetString("FileNotExistWarning"), App.ServiceLoader.GetString("Text_ok"));
+                        alertsMessage.ShowDialog("", App.MainPageLoader.GetString("FileNotExistWarning"), App.ServiceLoader.GetString("Text_ok"));
                         return;
                     }
 
@@ -372,8 +381,9 @@ namespace PDF_Master.ViewModels.Dialog.ConverterDialogs
                 {
                     return;
                 }
-            } 
-            else {
+            }
+            else
+            {
                 FolderBrowserDialog dlg = new FolderBrowserDialog();
                 if (dlg.ShowDialog() == System.Windows.Forms.DialogResult.OK)
                 {
@@ -381,7 +391,7 @@ namespace PDF_Master.ViewModels.Dialog.ConverterDialogs
                 }
                 else { return; }
             }
-            
+
             HomePageEditHelper.GetPagerange(PageRangeSelectIndex, currentViewer, ref ConverterCSVModel.PageRange, PageRangeText, true, CurrentPageIndex);
             if (ConverterCSVModel.PageRange == "")
             {
@@ -412,7 +422,7 @@ namespace PDF_Master.ViewModels.Dialog.ConverterDialogs
             //{
 
             //});
-            
+
         }
 
         private void radiobutton(string e)
@@ -428,7 +438,7 @@ namespace PDF_Master.ViewModels.Dialog.ConverterDialogs
                         break;
                     case "OnlyTableRadioBtn":
                         ConverterCSVModel.Options.IsMergeCsv = true;
-                        ConverterCSVModel.IsCustomFileName =true;
+                        ConverterCSVModel.IsCustomFileName = true;
                         break;
                     default:
                         break;
@@ -456,12 +466,12 @@ namespace PDF_Master.ViewModels.Dialog.ConverterDialogs
             if (pdfViewer != null)
             {
                 currentViewer = pdfViewer;
-                MaxPageRange=currentViewer.Document.PageCount;
+                MaxPageRange = currentViewer.Document.PageCount;
                 if (currentViewer.Tag != null) { ConverterCSVModel.Pawssword = currentViewer.Tag.ToString(); }
                 ConverterCSVModel.InputPath = pdfViewer.Document.FilePath;
                 FileInfo fileinfo = new FileInfo(ConverterCSVModel.InputPath);
                 ConverterCSVModel.Options.IsMergeCsv = false;
-                ConverterCSVModel.IsCustomFileName=false;
+                ConverterCSVModel.IsCustomFileName = false;
                 ConverterCSVModel.OutputPath = fileinfo.DirectoryName;
             }
         }

+ 15 - 2
PDF Office/ViewModels/Dialog/ConverterDialogs/ConverterExcelDialogViewModel.cs

@@ -1,6 +1,7 @@
 using ComDocumentAIKit;
 using ComPDFKit_Conversion.Options;
 using ComPDFKitViewer.PdfViewer;
+using Microsoft.Office.Interop.Excel;
 using PDF_Master.CustomControl;
 using PDF_Master.Helper;
 using PDF_Master.Model;
@@ -13,6 +14,7 @@ using Prism.Services.Dialogs;
 using System;
 using System.Collections.Generic;
 using System.Diagnostics;
+using System.Globalization;
 using System.IO;
 using System.Linq;
 using System.Windows.Forms;
@@ -313,6 +315,9 @@ namespace PDF_Master.ViewModels.Dialog.ConverterDialogs
 
         public DelegateCommand BatchConverterCommand { get; set; }
 
+        public DelegateCommand<object> PreviewCancelDownCommand { get; set; }
+       
+
         public DelegateCommand SetCustomPageRangeCommand { get; set; }
 
         #endregion
@@ -326,6 +331,7 @@ namespace PDF_Master.ViewModels.Dialog.ConverterDialogs
             SetCustomPageRangeCommand = new DelegateCommand(SetCustomPageRange);
             CmbPageSelectionChanged = new DelegateCommand<object>(CmbPageSelectionChangedEvent);
             CmbPageTextChanged = new DelegateCommand<object>(CmbPageTextChangedEvent);
+            PreviewCancelDownCommand = new DelegateCommand<object>(PreviewCancelDown);
             BatchConverterCommand = new DelegateCommand(BatchConverter);
 
             dialogs = dialogService;
@@ -363,7 +369,14 @@ namespace PDF_Master.ViewModels.Dialog.ConverterDialogs
         {
             RequestClose.Invoke(new DialogResult(ButtonResult.Cancel));
         }
-
+        private void PreviewCancelDown(object e)
+        {
+            var PageRangeComboBox = e as WritableComboBox;
+            if (PageRangeComboBox != null)
+            {
+                PageRangeComboBox.IsloseFocus = false;
+            }
+        }
         private void converter()
         {
             if (PageRangeSelectIndex == CheckPageSelect["4"])
@@ -623,7 +636,7 @@ namespace PDF_Master.ViewModels.Dialog.ConverterDialogs
 
         private void SelectLanguage(int SelectedIndex)
         {
-
+       
             switch (SelectedIndex)
             {
                 case 0:

+ 11 - 0
PDF Office/ViewModels/Dialog/ConverterDialogs/ConverterHTMLDialogViewModel.cs

@@ -139,6 +139,8 @@ namespace PDF_Master.ViewModels.Dialog.ConverterDialogs
 
         public DelegateCommand SetCustomPageRangeCommand { get; set; }
 
+        public DelegateCommand<object> PreviewCancelDownCommand { get; set; }
+
         public DelegateCommand BatchConverterCommand { get; set; }
         #endregion
 
@@ -150,6 +152,7 @@ namespace PDF_Master.ViewModels.Dialog.ConverterDialogs
             CmbPageSelectionChanged = new DelegateCommand<object>(CmbPageSelectionChangedEvent);
             CmbPageTextChanged = new DelegateCommand<object>(CmbPageTextChangedEvent);
             SetCustomPageRangeCommand = new DelegateCommand(SetCustomPageRange);
+            PreviewCancelDownCommand = new DelegateCommand<object>(PreviewCancelDown);
             BatchConverterCommand = new DelegateCommand(BatchConverter);
             dialogs = dialogService;
 
@@ -188,6 +191,14 @@ namespace PDF_Master.ViewModels.Dialog.ConverterDialogs
             RequestClose.Invoke(new DialogResult(ButtonResult.Cancel));
         }
 
+        private void PreviewCancelDown(object e)
+        {
+            var PageRangeComboBox = e as WritableComboBox;
+            if (PageRangeComboBox != null)
+            {
+                PageRangeComboBox.IsloseFocus = false;
+            }
+        }
         private void converter()
         {
             if (PageRangeSelectIndex == "4")

+ 12 - 0
PDF Office/ViewModels/Dialog/ConverterDialogs/ConverterImgDialogViewModel.cs

@@ -212,6 +212,8 @@ namespace PDF_Master.ViewModels.Dialog.ConverterDialogs
 
         public DelegateCommand SetCustomPageRangeCommand { get; set; }
 
+        public DelegateCommand<object> PreviewCancelDownCommand { get; set; }
+
         public DelegateCommand BatchConverterCommand { get; set; }
 
         #endregion
@@ -224,6 +226,7 @@ namespace PDF_Master.ViewModels.Dialog.ConverterDialogs
             CmbPageSelectionChanged = new DelegateCommand<object>(CmbPageSelectionChangedEvent);
             CmbPageTextChanged = new DelegateCommand<object>(CmbPageTextChangedEvent);
             SetCustomPageRangeCommand = new DelegateCommand(SetCustomPageRange);
+            PreviewCancelDownCommand = new DelegateCommand<object>(PreviewCancelDown);
             BatchConverterCommand = new DelegateCommand(BatchConverter);
             SetImageTypeOrigin();
             SetImageDPIOrigin();
@@ -339,6 +342,15 @@ namespace PDF_Master.ViewModels.Dialog.ConverterDialogs
             RequestClose.Invoke(new DialogResult(ButtonResult.Cancel));
         }
 
+        private void PreviewCancelDown(object e)
+        {
+            var PageRangeComboBox = e as WritableComboBox;
+            if (PageRangeComboBox != null)
+            {
+                PageRangeComboBox.IsloseFocus = false;
+            }
+        }
+
         private void converter()
         {
             if (PageRangeSelectIndex == CheckPageSelect["4"])

+ 12 - 0
PDF Office/ViewModels/Dialog/ConverterDialogs/ConverterPPTDialogViewModel.cs

@@ -167,6 +167,8 @@ namespace PDF_Master.ViewModels.Dialog.ConverterDialogs
 
         public DelegateCommand SetCustomPageRangeCommand { get; set; }
 
+        public DelegateCommand<object> PreviewCancelDownCommand { get; set; }
+
         public DelegateCommand BatchConverterCommand { get; set; }
         #endregion
 
@@ -177,6 +179,7 @@ namespace PDF_Master.ViewModels.Dialog.ConverterDialogs
             CmbPageSelectionChanged = new DelegateCommand<object>(CmbPageSelectionChangedEvent);
             CmbPageTextChanged = new DelegateCommand<object>(CmbPageTextChangedEvent);
             SetCustomPageRangeCommand = new DelegateCommand(SetCustomPageRange);
+            PreviewCancelDownCommand = new DelegateCommand<object>(PreviewCancelDown);
             BatchConverterCommand = new DelegateCommand(BatchConverter);
             dialogs = dialogService;
             IntString();
@@ -216,6 +219,15 @@ namespace PDF_Master.ViewModels.Dialog.ConverterDialogs
             RequestClose.Invoke(new DialogResult(ButtonResult.Cancel));
         }
 
+        private void PreviewCancelDown(object e)
+        {
+            var PageRangeComboBox = e as WritableComboBox;
+            if (PageRangeComboBox != null)
+            {
+                PageRangeComboBox.IsloseFocus = false;
+            }
+        }
+
         private void converter()
         {
             if (PageRangeSelectIndex == CheckPageSelect["4"])

+ 12 - 1
PDF Office/ViewModels/Dialog/ConverterDialogs/ConverterRTFDialogViewModel.cs

@@ -139,6 +139,8 @@ namespace PDF_Master.ViewModels.Dialog.ConverterDialogs
 
         public DelegateCommand SetCustomPageRangeCommand { get; set; }
 
+        public DelegateCommand<object> PreviewCancelDownCommand { get; set; }
+
         public DelegateCommand BatchConverterCommand { get; set; }
         #endregion
 
@@ -149,7 +151,7 @@ namespace PDF_Master.ViewModels.Dialog.ConverterDialogs
             CmbPageSelectionChanged = new DelegateCommand<object>(CmbPageSelectionChangedEvent);
             CmbPageTextChanged = new DelegateCommand<object>(CmbPageTextChangedEvent);
             SetCustomPageRangeCommand = new DelegateCommand(SetCustomPageRange);
-
+            PreviewCancelDownCommand = new DelegateCommand<object>(PreviewCancelDown);
             BatchConverterCommand = new DelegateCommand(BatchConverter);
             dialogs = dialogService;
             IntString();
@@ -188,6 +190,15 @@ namespace PDF_Master.ViewModels.Dialog.ConverterDialogs
             RequestClose.Invoke(new DialogResult(ButtonResult.Cancel));
         }
 
+        private void PreviewCancelDown(object e)
+        {
+            var PageRangeComboBox = e as WritableComboBox;
+            if (PageRangeComboBox != null)
+            {
+                PageRangeComboBox.IsloseFocus = false;
+            }
+        }
+
         private void converter()
         {
             if (PageRangeSelectIndex == "4")

+ 12 - 0
PDF Office/ViewModels/Dialog/ConverterDialogs/ConverterTextDialogViewModel.cs

@@ -141,6 +141,8 @@ namespace PDF_Master.ViewModels.Dialog.ConverterDialogs
 
         public DelegateCommand SetCustomPageRangeCommand { get; set; }
 
+        public DelegateCommand<object> PreviewCancelDownCommand { get; set; }
+
         public DelegateCommand BatchConverterCommand { get; set; }
         #endregion
 
@@ -152,6 +154,7 @@ namespace PDF_Master.ViewModels.Dialog.ConverterDialogs
             CmbPageSelectionChanged = new DelegateCommand<object>(CmbPageSelectionChangedEvent);
             CmbPageTextChanged = new DelegateCommand<object>(CmbPageTextChangedEvent);
             SetCustomPageRangeCommand = new DelegateCommand(SetCustomPageRange);
+            PreviewCancelDownCommand = new DelegateCommand<object>(PreviewCancelDown);
             BatchConverterCommand = new DelegateCommand(BatchConverter);
             dialogs = dialogService;
         }
@@ -188,6 +191,15 @@ namespace PDF_Master.ViewModels.Dialog.ConverterDialogs
             RequestClose.Invoke(new DialogResult(ButtonResult.Cancel));
         }
 
+        private void PreviewCancelDown(object e)
+        {
+            var PageRangeComboBox = e as WritableComboBox;
+            if (PageRangeComboBox != null)
+            {
+                PageRangeComboBox.IsloseFocus = false;
+            }
+        }
+
         private  void converter()
         {
             if (PageRangeSelectIndex == "4")

+ 12 - 0
PDF Office/ViewModels/Dialog/ConverterDialogs/ConverterWordDialogViewModel.cs

@@ -170,6 +170,8 @@ namespace PDF_Master.ViewModels.Dialog.ConverterDialogs
 
         public DelegateCommand BatchConverterCommand { get; set; }
 
+        public DelegateCommand<object> PreviewCancelDownCommand { get; set; }
+
         public DelegateCommand SetCustomPageRangeCommand { get; set; }
 
         #endregion
@@ -183,6 +185,7 @@ namespace PDF_Master.ViewModels.Dialog.ConverterDialogs
             CmbPageTextChanged = new DelegateCommand<object>(CmbPageTextChangedEvent);
             SetCustomPageRangeCommand = new DelegateCommand(SetCustomPageRange);
             BatchConverterCommand = new DelegateCommand(BatchConverter);
+            PreviewCancelDownCommand = new DelegateCommand<object>(PreviewCancelDown);
             dialogs = dialogService;
             IntString();
         }
@@ -221,6 +224,15 @@ namespace PDF_Master.ViewModels.Dialog.ConverterDialogs
             RequestClose.Invoke(new DialogResult(ButtonResult.Cancel));
         }
 
+        private void PreviewCancelDown(object e)
+        {
+            var PageRangeComboBox = e as WritableComboBox;
+            if (PageRangeComboBox != null)
+            {
+                PageRangeComboBox.IsloseFocus = false;
+            }
+        }
+
         private void converter()
         {
             if (PageRangeSelectIndex == CheckPageSelect["4"])

+ 28 - 4
PDF Office/ViewModels/Dialog/ToolsDialogs/MergeDialogViewModel.cs

@@ -112,7 +112,8 @@ namespace PDF_Master.ViewModels.Dialog.ToolsDialogs
 
         public ObservableCollection<MergeObject> MergeObjectlist { get; set; }
 
-        public DelegateCommand CancelCommand { get; set; }
+        public DelegateCommand CancelCommand { get; set; }
+        public DelegateCommand<object> PreviewCancelDownCommand { get; set; }
         public DelegateCommand MergeCommand { get; set; }
         public DelegateCommand<object> AddFilesCommand { get; set; }
         public DelegateCommand ClearCommand { get; set; }
@@ -160,7 +161,8 @@ namespace PDF_Master.ViewModels.Dialog.ToolsDialogs
             this.eventAggregator = eventAggregator;
             dialogs = dialogService;
             MergeObjectlist = new ObservableCollection<MergeObject>();
-            CancelCommand = new DelegateCommand(Cancel);
+            CancelCommand = new DelegateCommand(Cancel);
+            PreviewCancelDownCommand = new DelegateCommand<object>(PreviewCancelDown);
             AddFilesCommand = new DelegateCommand<object>(ButtonAddFiles);
             MergeCommand = new DelegateCommand(Merge);
             ClearCommand = new DelegateCommand(Clear);
@@ -182,8 +184,30 @@ namespace PDF_Master.ViewModels.Dialog.ToolsDialogs
         {
             Clear();
             RequestClose.Invoke(new DialogResult(ButtonResult.Cancel));
-        }
-
+        }
+        /// <summary>
+        /// 点击取消页面范围控件使失去焦点不生效
+        /// </summary>
+        private void PreviewCancelDown(object e)
+        {
+            var listView = e as ListView;
+            if (listView != null)
+            {
+                if (listView.ItemsSource != null)
+                {
+                    foreach (var item in listView.ItemsSource)
+                    {
+                        var pagerange= listView.ItemContainerGenerator.ContainerFromItem(item) as ListViewItem;
+                        if (pagerange != null) 
+                        {
+                            var pagerangecombobox= CommonHelper.FindVisualChild<WritableComboBox>(pagerange);
+                            if(pagerangecombobox!=null)
+                                pagerangecombobox.IsloseFocus = false;
+                        }
+                    }
+                }
+            }
+        }
         public void ButtonAddFiles(object data)
         {
             int index = Convert.ToInt32(data);

+ 7 - 1
PDF Office/Views/Dialog/ConverterDialogs/ConverterCSVDialog.xaml

@@ -103,7 +103,13 @@
                     HorizontalAlignment="Right"
                     Command="{Binding CancelCommand}"
                     Content="{Binding T_No}" 
-                     Style="{StaticResource btn.sec}"/>
+                    Style="{StaticResource btn.sec}">
+                    <i:Interaction.Triggers>
+                        <i:EventTrigger EventName="PreviewMouseDown">
+                            <i:InvokeCommandAction Command="{Binding PreviewCancelDownCommand}" CommandParameter="{Binding ElementName=PageRangeComboBox}" />
+                        </i:EventTrigger>
+                    </i:Interaction.Triggers>
+                </Button>
                 <Button
                     Width="98"
                     Height="32"

+ 7 - 1
PDF Office/Views/Dialog/ConverterDialogs/ConverterExcelDialog.xaml

@@ -102,7 +102,13 @@
                     Margin="0,0,16,0"
                     HorizontalAlignment="Right"
                     Content="{Binding T_No}" 
-                    Command="{Binding CancelCommand}" Style="{StaticResource btn.sec}"/>
+                    Command="{Binding CancelCommand}" Style="{StaticResource btn.sec}">
+                    <i:Interaction.Triggers>
+                        <i:EventTrigger EventName="PreviewMouseDown">
+                            <i:InvokeCommandAction Command="{Binding PreviewCancelDownCommand}" CommandParameter="{Binding ElementName=PageRangeComboBox}" />
+                        </i:EventTrigger>
+                    </i:Interaction.Triggers>
+                </Button>
                 <Button
                     Width="98"
                     Height="32"

+ 7 - 1
PDF Office/Views/Dialog/ConverterDialogs/ConverterHTMLDialog.xaml

@@ -74,7 +74,13 @@
                     Margin="0,0,16,0"
                     HorizontalAlignment="Right"
                     Content="{Binding T_No}" 
-                    Command="{Binding CancelCommand}" Style="{StaticResource btn.sec}"/>
+                    Command="{Binding CancelCommand}" Style="{StaticResource btn.sec}">
+                    <i:Interaction.Triggers>
+                        <i:EventTrigger EventName="PreviewMouseDown">
+                            <i:InvokeCommandAction Command="{Binding PreviewCancelDownCommand}" CommandParameter="{Binding ElementName=PageRangeComboBox}" />
+                        </i:EventTrigger>
+                    </i:Interaction.Triggers>
+                </Button>
                 <Button
                     Width="98"
                     Height="32"

+ 7 - 1
PDF Office/Views/Dialog/ConverterDialogs/ConverterImgDialog.xaml

@@ -102,7 +102,13 @@
                     Margin="0,0,16,0"
                     HorizontalAlignment="Right"
                     Command="{Binding CancelCommand}"
-                    Content="{Binding T_No}" Style="{StaticResource btn.sec}"/>
+                    Content="{Binding T_No}" Style="{StaticResource btn.sec}">
+                    <i:Interaction.Triggers>
+                        <i:EventTrigger EventName="PreviewMouseDown">
+                            <i:InvokeCommandAction Command="{Binding PreviewCancelDownCommand}" CommandParameter="{Binding ElementName=PageRangeComboBox}" />
+                        </i:EventTrigger>
+                    </i:Interaction.Triggers>
+                </Button>
                 <Button
                     Width="98"
                     Height="32"

+ 7 - 1
PDF Office/Views/Dialog/ConverterDialogs/ConverterPPTDialog.xaml

@@ -74,7 +74,13 @@
                     Margin="0,0,16,0"
                     HorizontalAlignment="Right"
                     Content="{Binding T_No}" 
-                    Command="{Binding CancelCommand}" Style="{StaticResource btn.sec}"/>
+                    Command="{Binding CancelCommand}" Style="{StaticResource btn.sec}">
+                    <i:Interaction.Triggers>
+                        <i:EventTrigger EventName="PreviewMouseDown">
+                            <i:InvokeCommandAction Command="{Binding PreviewCancelDownCommand}" CommandParameter="{Binding ElementName=PageRangeComboBox}" />
+                        </i:EventTrigger>
+                    </i:Interaction.Triggers>
+                </Button>
                 <Button
                     Width="98"
                     Height="32"

+ 7 - 1
PDF Office/Views/Dialog/ConverterDialogs/ConverterRTFDialog.xaml

@@ -74,7 +74,13 @@
                     Margin="0,0,16,0"
                     HorizontalAlignment="Right"
                     Content="{Binding T_No}" 
-                    Command="{Binding CancelCommand}" Style="{StaticResource btn.sec}"/>
+                    Command="{Binding CancelCommand}" Style="{StaticResource btn.sec}">
+                    <i:Interaction.Triggers>
+                        <i:EventTrigger EventName="PreviewMouseDown">
+                            <i:InvokeCommandAction Command="{Binding PreviewCancelDownCommand}" CommandParameter="{Binding ElementName=PageRangeComboBox}" />
+                        </i:EventTrigger>
+                    </i:Interaction.Triggers>
+                </Button>
                 <Button
                     Width="98"
                     Height="32"

+ 7 - 1
PDF Office/Views/Dialog/ConverterDialogs/ConverterTextDialog.xaml

@@ -74,7 +74,13 @@
                     Margin="0,0,16,0"
                     HorizontalAlignment="Right"
                     Content="{Binding T_No}" 
-                    Command="{Binding CancelCommand}" Style="{StaticResource btn.sec}"/>
+                    Command="{Binding CancelCommand}" Style="{StaticResource btn.sec}">
+                    <i:Interaction.Triggers>
+                        <i:EventTrigger EventName="PreviewMouseDown">
+                            <i:InvokeCommandAction Command="{Binding PreviewCancelDownCommand}" CommandParameter="{Binding ElementName=PageRangeComboBox}" />
+                        </i:EventTrigger>
+                    </i:Interaction.Triggers>
+                </Button>
                 <Button
                     Width="98"
                     Height="32"

+ 7 - 1
PDF Office/Views/Dialog/ConverterDialogs/ConverterWordDialog.xaml

@@ -89,7 +89,13 @@
                     Margin="0,0,16,0"
                     HorizontalAlignment="Right"
                     Content="{Binding T_No}" 
-                    Command="{Binding CancelCommand}" Style="{StaticResource btn.sec}"/>
+                    Command="{Binding CancelCommand}" Style="{StaticResource btn.sec}">
+                    <i:Interaction.Triggers>
+                        <i:EventTrigger EventName="PreviewMouseDown">
+                            <i:InvokeCommandAction Command="{Binding PreviewCancelDownCommand}" CommandParameter="{Binding ElementName=PageRangeComboBox}" />
+                        </i:EventTrigger>
+                    </i:Interaction.Triggers>
+                </Button>
                 <Button
                     Width="98"
                     Height="32"

+ 8 - 1
PDF Office/Views/Dialog/ToolsDialogs/MergeDialog.xaml

@@ -275,6 +275,7 @@
                                             HorizontalAlignment="Stretch"
                                             VerticalAlignment="Center">
                                             <customcontrol:WritableComboBox
+                                                x:Name="PageRangeComboBox"
                                                 Width="150"
                                                 Height="30"
                                                 MaxPageRange="{Binding SDKPageCount}"
@@ -514,7 +515,13 @@
                 Margin="16,0,0,0"
                 Command="{Binding CancelCommand}"
                 Content="Cancel"
-                Style="{StaticResource btn.sec}" />
+                Style="{StaticResource btn.sec}">
+                <i:Interaction.Triggers>
+                    <i:EventTrigger EventName="PreviewMouseDown">
+                        <i:InvokeCommandAction Command="{Binding PreviewCancelDownCommand}" CommandParameter="{Binding ElementName=MergeView}" />
+                    </i:EventTrigger>
+                </i:Interaction.Triggers>
+            </Button>
         </StackPanel>
         <StackPanel
             Grid.Row="5"