فهرست منبع

页面编辑 bug18977,代码优化

OYXH\oyxh 1 سال پیش
والد
کامیت
8275e58a7a
2فایلهای تغییر یافته به همراه22 افزوده شده و 6 حذف شده
  1. 18 3
      PDF Office/ViewModels/PageEdit/PageEditContentViewModel.cs
  2. 4 3
      PDF Office/Views/PageEdit/PageEditContent.xaml.cs

+ 18 - 3
PDF Office/ViewModels/PageEdit/PageEditContentViewModel.cs

@@ -947,13 +947,17 @@ namespace PDF_Master.ViewModels.PageEdit
             else
             {
                 insertIndex = pageIndex + 1;
-                if (isMultiSelected)
+                if (insertIndex >= PDFViewer.Document.PageCount)
+                {
+                    insertIndex = PDFViewer.Document.PageCount;
+                }
+                if (isMultiSelected && maxSelectedIndex != -1)
                 {
                     insertIndex = maxSelectedIndex + 1;
                 }
             }
             IsLoading = Visibility.Visible;
-            await Task.Delay(3);
+            await System.Threading.Tasks.Task.Delay(3);
 
             PageEditHistory history = new PageEditHistory();
             history.InsertIndex = insertIndex;
@@ -1271,6 +1275,7 @@ namespace PDF_Master.ViewModels.PageEdit
                 int index = 0;
                 if (IsMouseRightButtonDown)
                 {
+                    int count = RightSelectedIndexs.Count;
                     pageIndex = RightSelectedIndex;
                     if (IsMultiSelected)
                     {
@@ -3071,7 +3076,11 @@ namespace PDF_Master.ViewModels.PageEdit
                         items.Add(pageitems[i], pageitems[i]);
 
                         //重新拿图
-                        PageEditItems[pageitems[i]].IsGetImage = false;
+                        if (PageEditItems.Count > pageitems[i])
+                        {
+                            PageEditItems[pageitems[i]].IsGetImage = false;
+                        }
+                            
                     }
                 }
             }
@@ -3229,6 +3238,12 @@ namespace PDF_Master.ViewModels.PageEdit
                 NotifyUIToRefresh(pageRange);
                 //为了避免重复选中,条件也符合而文本缺失的情况
                 TbPageRange = PageRangeItems[index];
+                RightSelectedIndexs.Clear();
+                foreach (var item in pageRange)
+                {
+                    RightSelectedIndexs.Add(item - 1);
+                }
+
                 IsSelectFormSelf = false;
             }
             else

+ 4 - 3
PDF Office/Views/PageEdit/PageEditContent.xaml.cs

@@ -198,7 +198,7 @@ namespace PDF_Master.Views.PageEdit
                         if (ListPageEdit.SelectedItem != null)
                         {
                             ListPageEdit.ScrollIntoView(ListPageEdit.SelectedItem);
-                            index = ((PageEditItem)ListPageEdit.SelectedItem).PageNumber - 1;
+                            index = ListPageEdit.SelectedIndex;
                             viewModel.RightSelectedIndex = index;
                         }
                     }
@@ -242,16 +242,17 @@ namespace PDF_Master.Views.PageEdit
                     {
                         if (ListPageEdit.SelectedItems.Count >= 2)
                         {
+                            viewModel.maxSelectedIndex = index;
                             //页码 下拉框 ,选择全选页面、奇数、偶数等情况,偶现IsMultiSelected=false,这里先强制设置一下
                             viewModel.IsMultiSelected = true;
                         }
                         else
                         {
+                            viewModel.maxSelectedIndex = -1;
                             viewModel.IsMultiSelected = false;
                         }
-
-                        viewModel.IsMouseRightButtonDown = false;
                         viewModel.IsMouseRightButtonDown = true;
+                        viewModel.IsMouseRightButtonDown = false;
                     }
                     //以下方法 实用性不强,会跳转失败
                     //缩略图 复制粘贴后,选中页面,要与阅读视图 对应