|
@@ -86,6 +86,11 @@ namespace PDF_Master.ViewModels.PageEdit
|
|
|
/// </summary>
|
|
|
private bool isFirstLoad = true;
|
|
|
|
|
|
+ /// <summary>
|
|
|
+ /// 是否正在拖拽排序中
|
|
|
+ /// </summary>
|
|
|
+ private bool DragSorting = false;
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 记录多选项中最后一项的索引
|
|
|
/// </summary>
|
|
@@ -391,10 +396,6 @@ namespace PDF_Master.ViewModels.PageEdit
|
|
|
/// </summary>
|
|
|
public DelegateCommand ReverseCommand { get; set; }
|
|
|
|
|
|
- /// <summary>
|
|
|
- /// 打印
|
|
|
- /// </summary>
|
|
|
- public DelegateCommand PrintCommand { get; set; }
|
|
|
|
|
|
/// <summary>
|
|
|
/// 放大
|
|
@@ -447,12 +448,12 @@ namespace PDF_Master.ViewModels.PageEdit
|
|
|
CopyCommand = new DelegateCommand(copy);
|
|
|
PasteCommand = new DelegateCommand(()=> { paste(); }, CanPasteExcute).ObservesProperty(() => CanPaste);
|
|
|
CutCommand = new DelegateCommand(cut);
|
|
|
- PrintCommand = new DelegateCommand(print);
|
|
|
ClearSelectedCommand = new DelegateCommand(clearSelected);
|
|
|
EnterPageEditCommand = new DelegateCommand(enterpageeditr);
|
|
|
|
|
|
//订阅页面刷新事件
|
|
|
eventAggregator.GetEvent<PageEditRefreshEvent>().Subscribe(OnPageEditRefreshEvent, e => e.Unicode == unicode);
|
|
|
+ eventAggregator.GetEvent<ViewContentEvent>().Subscribe(ViewContentChangedEvent, e => e.Unicode == unicode);
|
|
|
|
|
|
CacheFilePath.Instance.PropertyChanged += Instance_PropertyChanged;
|
|
|
|
|
@@ -462,7 +463,20 @@ namespace PDF_Master.ViewModels.PageEdit
|
|
|
|
|
|
|
|
|
|
|
|
+
|
|
|
#region 事件
|
|
|
+ private void ViewContentChangedEvent(ViewContentEventArgs obj)
|
|
|
+ {
|
|
|
+ //只有在缩略图模式下响应刷新,进入页面编辑时 会刷新可见范围内图片,不需要响应这个事件
|
|
|
+ if(IsBOTAThumb== Visibility.Visible)
|
|
|
+ {
|
|
|
+ PageEditItems[PDFViewer.CurrentIndex].IsGetImage = false;
|
|
|
+ PageEditItems[PDFViewer.CurrentIndex].Size = PDFViewer.Document.GetPageSize(PDFViewer.CurrentIndex);
|
|
|
+ RefreshItemImage(PDFViewer.CurrentIndex, PDFViewer.CurrentIndex);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 进入页面编辑
|
|
|
/// </summary>
|
|
@@ -1059,14 +1073,14 @@ namespace PDF_Master.ViewModels.PageEdit
|
|
|
/// <summary>
|
|
|
/// 调用打印机
|
|
|
/// </summary>
|
|
|
- private void print()
|
|
|
+ public void print(List<int> SelectedPages)
|
|
|
{
|
|
|
PDFViewer.GoToPage(listSelecedIndex);
|
|
|
DialogParameters printValue = new DialogParameters();
|
|
|
printValue.Add(ParameterNames.PDFViewer, PDFViewer);
|
|
|
printValue.Add(ParameterNames.FilePath, PDFViewer.Document.FileName);
|
|
|
printValue.Add(ParameterNames.PrintCurrentPage, PDFViewer.CurrentIndex);
|
|
|
- printValue.Add(ParameterNames.PageList, selectedPageList);
|
|
|
+ printValue.Add(ParameterNames.PageList, SelectedPages);
|
|
|
dialogs.ShowDialog(DialogNames.HomePagePrinterDialog, printValue, e => { });
|
|
|
}
|
|
|
|
|
@@ -1411,9 +1425,17 @@ namespace PDF_Master.ViewModels.PageEdit
|
|
|
{
|
|
|
if (PageEditItems[i].Selected)
|
|
|
{
|
|
|
-
|
|
|
indexList.Add(i);
|
|
|
-
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //因为虚拟化 可能获取不到所有选中项的页码 需要结合选中项的集合判断一下
|
|
|
+ if(selectedPageList.Count>0&&selectedPageList.Count> indexList.Count)
|
|
|
+ {
|
|
|
+ indexList = new List<int>();
|
|
|
+ for(int j=0;j<selectedPageList.Count;j++)
|
|
|
+ {
|
|
|
+ indexList.Add(selectedPageList[j]-1);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
@@ -1932,8 +1954,6 @@ namespace PDF_Master.ViewModels.PageEdit
|
|
|
PDFViewer.Document.RotatePage(i, rightRotate ? 1 : -1);
|
|
|
PDFViewer.Document.ReleasePages(i);
|
|
|
items.Add(i, i);
|
|
|
-
|
|
|
- PageEditItems[i].Size = PDFViewer.Document.GetPageSize(i);
|
|
|
//重新拿图
|
|
|
PageEditItems[i].IsGetImage = false;
|
|
|
}
|
|
@@ -1944,13 +1964,12 @@ namespace PDF_Master.ViewModels.PageEdit
|
|
|
//旋转对应Items集合
|
|
|
for (int i = 0; i < pageitems.Count; i++)
|
|
|
{
|
|
|
- PDFViewer.Document.RotatePage(pageitems[i], rightRotate ? 1 : -1);
|
|
|
+ var r = PDFViewer.Document.RotatePage(pageitems[i], rightRotate ? 1 : -1);
|
|
|
PDFViewer.Document.ReleasePages(pageitems[i]);
|
|
|
items.Add(pageitems[i], pageitems[i]);
|
|
|
|
|
|
//重新拿图
|
|
|
PageEditItems[pageitems[i]].IsGetImage = false;
|
|
|
- PageEditItems[i].Size = PDFViewer.Document.GetPageSize(i);
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -1968,7 +1987,7 @@ namespace PDF_Master.ViewModels.PageEdit
|
|
|
PDFViewer.UndoManager.AddHistory(history);
|
|
|
}
|
|
|
|
|
|
- ReloadAfterOption(false, false, Tuple.Create(0, PageEditItems.Count));
|
|
|
+ ReloadAfterOption(false, false, Tuple.Create(items.Keys.First(),items.Keys.Last()));
|
|
|
IsLoading = Visibility.Collapsed;
|
|
|
}
|
|
|
|
|
@@ -2167,6 +2186,8 @@ namespace PDF_Master.ViewModels.PageEdit
|
|
|
{
|
|
|
if (i <= PageEditItems.Count - 1 && i >= 0 && PageEditItems.Count > 0)
|
|
|
{
|
|
|
+ //先更新一次每个页面的尺寸 确保图的方向正确
|
|
|
+ PageEditItems[i].Size = PDFViewer.Document.GetPageSize(i);
|
|
|
//宽高为样式中图片控件宽高
|
|
|
if (PageEditItems[i].isVertical)
|
|
|
{
|
|
@@ -2203,6 +2224,7 @@ namespace PDF_Master.ViewModels.PageEdit
|
|
|
/// <param name="pageIndexs"></param>
|
|
|
public void DragToSort(int targetIndex, List<int> pageIndexs, bool IsFromUndoRedo = false)
|
|
|
{
|
|
|
+ DragSorting = true;
|
|
|
//拖拽排序后需要重新选中项的集合
|
|
|
List<int> selectedPages = new List<int>();
|
|
|
|
|
@@ -2224,6 +2246,7 @@ namespace PDF_Master.ViewModels.PageEdit
|
|
|
result = MoveItemToIndex(pageIndexs[i], targetIndex + i);
|
|
|
if (!result)
|
|
|
{
|
|
|
+ DragSorting = false;
|
|
|
return;
|
|
|
}
|
|
|
SourceTargetValue.Add(pageIndexs[i], targetIndex + i);
|
|
@@ -2238,6 +2261,7 @@ namespace PDF_Master.ViewModels.PageEdit
|
|
|
result = MoveItemToIndex(pageIndexs[pageIndexs.Count - 1 - i], targetIndex - 1 - i);
|
|
|
if (!result)
|
|
|
{
|
|
|
+ DragSorting = false;
|
|
|
return;
|
|
|
}
|
|
|
SourceTargetValue.Add(pageIndexs[pageIndexs.Count - 1 - i], targetIndex - 1 - i);
|
|
@@ -2263,6 +2287,7 @@ namespace PDF_Master.ViewModels.PageEdit
|
|
|
result = MoveItemToIndex(pageIndexs[k - i], targetIndex - 1 - i);
|
|
|
if (!result)
|
|
|
{
|
|
|
+ DragSorting = false;
|
|
|
return;
|
|
|
}
|
|
|
SourceTargetValue.Add(pageIndexs[k - i], targetIndex - 1 - i);
|
|
@@ -2275,6 +2300,7 @@ namespace PDF_Master.ViewModels.PageEdit
|
|
|
result = MoveItemToIndex(pageIndexs[j], newIndex);
|
|
|
if (!result)
|
|
|
{
|
|
|
+ DragSorting = false;
|
|
|
return;
|
|
|
}
|
|
|
SourceTargetValue.Add(pageIndexs[j], newIndex);
|
|
@@ -2282,6 +2308,7 @@ namespace PDF_Master.ViewModels.PageEdit
|
|
|
newIndex++;
|
|
|
}
|
|
|
}
|
|
|
+ DragSorting = false;
|
|
|
//通知UI选中Items
|
|
|
NotifyUIToRefresh(selectedPages);
|
|
|
//刷新页码和图片
|
|
@@ -2419,8 +2446,9 @@ namespace PDF_Master.ViewModels.PageEdit
|
|
|
|
|
|
private void PDFViewer_AnnotEditHandler(object sender, List<ComPDFKitViewer.AnnotEvent.AnnotEditEvent> e)
|
|
|
{
|
|
|
- if (e != null && e.Count > 0)
|
|
|
+ if (e != null && e.Count > 0&&IsBOTAThumb == Visibility.Visible)
|
|
|
{
|
|
|
+ //缩略图模式下 刷新页面
|
|
|
int pageIndex = e[0].PageIndex;
|
|
|
RefreshItemImage(pageIndex, pageIndex);
|
|
|
}
|
|
@@ -2428,7 +2456,7 @@ namespace PDF_Master.ViewModels.PageEdit
|
|
|
|
|
|
private void PDFViewer_InfoChanged(object sender, KeyValuePair<string, object> e)
|
|
|
{
|
|
|
- if (e.Key == "PageNum")
|
|
|
+ if (e.Key == "PageNum"&&!viewContentViewModel.isInPageEdit)
|
|
|
{
|
|
|
NotifyUIToRefresh(new List<int> { (e.Value as ComPDFKitViewer.RenderData).PageIndex });
|
|
|
}
|