Browse Source

页面编辑-修复选中奇数页后不清空选中的Bug;修复选中页面范围选项,按回车后会有不必要弹窗的问题

ZhouJieSheng 1 year ago
parent
commit
c34f0b9292

+ 14 - 5
PDF Office/ViewModels/PageEdit/PageEditContentViewModel.cs

@@ -1072,6 +1072,10 @@ namespace PDF_Master.ViewModels.PageEdit
 
             if (args.Key == Key.Enter)
             {
+                if(PageRangeItems.Contains((args.OriginalSource as TextBox).Text))
+                {
+                    return;
+                }
                 List<int> TargetPageIndexs = new List<int>();
                 var result = CommonHelper.GetPagesInRange(ref TargetPageIndexs, (args.OriginalSource as TextBox).Text, PDFViewer.Document.PageCount, new char[] { ',', ',' }, new char[] { '-' });
                 if (!result)
@@ -2117,8 +2121,10 @@ namespace PDF_Master.ViewModels.PageEdit
                     }
                     break;
 
-                case 1:
-                    //奇数页
+                case 1:
+                    //奇数页
+                    //先清空所有选项
+                    ListSelectedIndex = -1;
                     for (int i = 0; i < PageEditItems.Count; i++)
                     {
                         if (i % 2 == 0)
@@ -2127,8 +2133,10 @@ namespace PDF_Master.ViewModels.PageEdit
                         }
                     }
                     break;
-                case 2:
-                    //偶数页
+                case 2:
+                    //偶数页
+                    //先清空所有选项
+                    ListSelectedIndex = -1;
                     for (int i = 0; i < PageEditItems.Count; i++)
                     {
                         if (i % 2 != 0)
@@ -2137,7 +2145,8 @@ namespace PDF_Master.ViewModels.PageEdit
                         }
                     }
                     break;
-                case 3://横向页面
+                case 3://横向页面
+                    //先清空所有选项
                     ListSelectedIndex = -1;
                     for (int i = 0; i < PageEditItems.Count; i++)
                     {

+ 1 - 0
PDF Office/Views/PageEdit/PageEditContent.xaml

@@ -190,6 +190,7 @@
                 <RowDefinition />
             </Grid.RowDefinitions>
             <Grid
+                Name="GridHeader"
                 Height="40"
                 Background="{StaticResource color.sys.layout.mg}"
                 Focusable="True"

+ 13 - 2
PDF Office/Views/PageEdit/PageEditContent.xaml.cs

@@ -1030,8 +1030,19 @@ namespace PDF_Master.Views.PageEdit
 
         private void Grid_PreviewMouseLeftButtonDown(object sender, MouseButtonEventArgs e)
         {
-            var visual = VisualTreeHelper.HitTest(this, Mouse.GetPosition(this));
-            if (visual!=null&&(visual.VisualHit as Grid)!=null)
+            var visual = VisualTreeHelper.HitTest(GridHeader, Mouse.GetPosition(GridHeader));
+            if(visual==null)
+            {
+                //点击区域不是二级菜单区域的Grid时,返回
+                return;
+            }
+            var menuItem = CommonHelper.FindVisualParent<ComboBoxItem>(visual.VisualHit);
+            if(menuItem!=null)
+            {
+                //点击位置为下拉菜单子项时,返回
+                return;
+            }
+            if (visual != null && (visual.VisualHit as Grid) != null)
             {
                 //点击工具栏空白处时 失去焦点
                 ListPageEdit.Focus();