Parcourir la source

Merge branch 'dev' of http://git.kdan.cc:8865/Windows/PDFOffice_Windows_exe into dev

lvle il y a 1 an
Parent
commit
f31c785ae2
1 fichiers modifiés avec 29 ajouts et 6 suppressions
  1. 29 6
      PDF Office/ViewModels/PageEdit/PageEditContentViewModel.cs

+ 29 - 6
PDF Office/ViewModels/PageEdit/PageEditContentViewModel.cs

@@ -1035,8 +1035,24 @@ namespace PDF_Master.ViewModels.PageEdit
             {
                 IsLoading = Visibility.Visible;
                 await Task.Delay(3);
-                DoRemoveSelectedPages();
+                int index = DoRemoveSelectedPages();
                 ReloadAfterOption(true, true, Tuple.Create(0, PDFViewer.Document.PageCount));
+                //删除后 选中项
+                if (index!=-1)
+                {
+                    if(index== PDFViewer.Document.PageCount)
+                    {
+                        ListSelectedIndex = index - 1;
+                    }
+                    if (index > PDFViewer.Document.PageCount)
+                    {
+                        ListSelectedIndex = PDFViewer.Document.PageCount-1;
+                    }
+                    else
+                    {
+                        ListSelectedIndex = index;
+                    }
+                }
                 IsLoading = Visibility.Collapsed;
             }
         }
@@ -1329,7 +1345,7 @@ namespace PDF_Master.ViewModels.PageEdit
                 {
                     TbPageRange = (listSelecedIndex + 1).ToString();
                     //缩放 平移移动页面,页面大小出现不全的问题
-                    //listbox.ScrollIntoView(listbox.SelectedItems[0]);
+                    listbox.ScrollIntoView(listbox.SelectedItems[0]);
                     //需要刷新 startRefreshIndex 、endRefreshedIndex
                     //NotifyUIToRefresh();
                     //保险起见,暂时只能用这个方法
@@ -1871,12 +1887,14 @@ namespace PDF_Master.ViewModels.PageEdit
         /// 删除选中项的方法 不带Reload操作
         /// 方便其他逻辑中调用
         /// </summary>
-        private void DoRemoveSelectedPages(List<int> pageList = null, bool isFromUndoRedo = false)
+        private int DoRemoveSelectedPages(List<int> pageList = null, bool isFromUndoRedo = false)
         {
             if (!ServiceHelper.IAPBeforeFunction())
             {
-                return;
+                return -1;
             }
+            //删除后 的选中项
+            int index = maxSelectedIndex;
 
             List<int> indexList = new List<int>();
             if (pageList == null || pageList.Count < 0)
@@ -1908,14 +1926,14 @@ namespace PDF_Master.ViewModels.PageEdit
             {
                 AlertsMessage alertsMessage = new AlertsMessage();
                 alertsMessage.ShowDialog("", App.MainPageLoader.GetString("PageEdit_DeleteAllPage"), App.ServiceLoader.GetString("Text_ok"));
-                return;
+                return -1;
             }
 
             var result = PDFViewer.Document.RemovePages(indexList.ToArray());
             if (!result)
             {
                 ShowToast();
-                return;
+                return -1;
             }
 
             //文档层操作成功后再删除UI层
@@ -1932,6 +1950,11 @@ namespace PDF_Master.ViewModels.PageEdit
                 //this.CanUndo = false;
                 //this.CanRedo = false;
             }
+            if (index == -1)
+            {
+                index = indexList.Last();
+            }
+            return index;
         }
 
         /// <summary>