|
@@ -24,6 +24,28 @@ namespace PDF_Office.ViewModels.PropertyPanel
|
|
|
|
|
|
#region 编辑PDF全局
|
|
|
|
|
|
+ private bool _isLayoutAvgAlign = false;
|
|
|
+ public bool IsLayoutAvgAlign
|
|
|
+ {
|
|
|
+ get { return _isLayoutAvgAlign; }
|
|
|
+ set
|
|
|
+ {
|
|
|
+ SetProperty(ref _isLayoutAvgAlign, value);
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private bool _isLayoutAlign = false;
|
|
|
+ public bool IsLayoutAlign
|
|
|
+ {
|
|
|
+ get { return _isLayoutAlign; }
|
|
|
+ set
|
|
|
+ {
|
|
|
+ SetProperty(ref _isLayoutAlign, value);
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
private bool _isTextEdit = true;
|
|
|
public bool IsTextEdit
|
|
|
{
|
|
@@ -202,7 +224,7 @@ namespace PDF_Office.ViewModels.PropertyPanel
|
|
|
public DelegateCommand ReplaceImgCommand { get; set; }
|
|
|
public DelegateCommand ExportImgCommand { get; set; }
|
|
|
public DelegateCommand CropImgCommand { get; set; }
|
|
|
- public DelegateCommand ImgAlignCheckedCommand { get; set; }
|
|
|
+ public DelegateCommand<object> ImgAlignCheckedCommand { get; set; }
|
|
|
|
|
|
|
|
|
/// <summary>
|
|
@@ -218,6 +240,8 @@ namespace PDF_Office.ViewModels.PropertyPanel
|
|
|
|
|
|
#endregion
|
|
|
|
|
|
+ public event EventHandler ClearCheckedAglin;
|
|
|
+
|
|
|
#endregion
|
|
|
|
|
|
private ComPDFKitViewer.PDFEditEvent TextEditEvent;
|
|
@@ -244,7 +268,7 @@ namespace PDF_Office.ViewModels.PropertyPanel
|
|
|
ReplaceImgCommand = new DelegateCommand(ReplaceImg);
|
|
|
ExportImgCommand = new DelegateCommand(ExportImg);
|
|
|
CropImgCommand = new DelegateCommand(CropImg);
|
|
|
- ImgAlignCheckedCommand = new DelegateCommand(ImgAlignChecked);
|
|
|
+ ImgAlignCheckedCommand = new DelegateCommand<object>(ImgAlignChecked);
|
|
|
|
|
|
SelectedColorCommand = new DelegateCommand<object>(SelectedColor);
|
|
|
SelectedFontStyleCommand = new DelegateCommand<object>(SelectedFontStyle);
|
|
@@ -259,9 +283,39 @@ namespace PDF_Office.ViewModels.PropertyPanel
|
|
|
CancelCropCommand = new DelegateCommand(CancelCropImg);
|
|
|
}
|
|
|
|
|
|
- private void ImgAlignChecked()
|
|
|
+ private void ImgAlignChecked(object obj)
|
|
|
{
|
|
|
-
|
|
|
+ if (obj != null)
|
|
|
+ {
|
|
|
+ switch((string)obj)
|
|
|
+ {
|
|
|
+ case "AlignLeft":
|
|
|
+ PDFViewer.SetPDFEditAligment(AlignModes.AlignLeft);
|
|
|
+ break;
|
|
|
+ case "AlignHorizonCenter":
|
|
|
+ PDFViewer.SetPDFEditAligment(AlignModes.AlignHorizonCenter);
|
|
|
+ break;
|
|
|
+ case "AlignRight":
|
|
|
+ PDFViewer.SetPDFEditAligment(AlignModes.AlignRight);
|
|
|
+ break;
|
|
|
+ case "DistributeHorizontal":
|
|
|
+ PDFViewer.SetPDFEditAligment(AlignModes.DistributeHorizontal);
|
|
|
+ break;
|
|
|
+ case "AlignTop":
|
|
|
+ PDFViewer.SetPDFEditAligment(AlignModes.AlignTop);
|
|
|
+ break;
|
|
|
+ case "AlignVerticalCenter":
|
|
|
+ PDFViewer.SetPDFEditAligment(AlignModes.AlignVerticalCenter);
|
|
|
+ break;
|
|
|
+ case "AlignBottom":
|
|
|
+ PDFViewer.SetPDFEditAligment(AlignModes.AlignBottom);
|
|
|
+ break;
|
|
|
+ case "DistributeVertical":
|
|
|
+ PDFViewer.SetPDFEditAligment(AlignModes.DistributeVertical);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
}
|
|
|
|
|
|
private void CancelCropImg()
|
|
@@ -527,7 +581,7 @@ namespace PDF_Office.ViewModels.PropertyPanel
|
|
|
|
|
|
PDFViewer.PDFEditCommandHandler -= PDFViewer_PDFEditCommandHandler;
|
|
|
PDFViewer.PDFEditCommandHandler += PDFViewer_PDFEditCommandHandler;
|
|
|
-
|
|
|
+
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -543,8 +597,7 @@ namespace PDF_Office.ViewModels.PropertyPanel
|
|
|
|
|
|
private void PDFViewer_PDFEditCommandHandler(object sender, PDFEditCommand e)
|
|
|
{
|
|
|
-
|
|
|
- ContextMenu popMenu = null;
|
|
|
+
|
|
|
if (e == null)
|
|
|
return;
|
|
|
|
|
@@ -554,66 +607,18 @@ namespace PDF_Office.ViewModels.PropertyPanel
|
|
|
|
|
|
if (e.EditType == ComPDFKit.PDFPage.CPDFEditType.None)
|
|
|
{
|
|
|
- popMenu = App.Current.FindResource("NoneMenu") as ContextMenu;
|
|
|
- if(popMenu != null && popMenu.Items.Count == 3)
|
|
|
+ e.PopupMenu = EmptyStateMenu(sender);
|
|
|
+ if (e.PopupMenu != null)
|
|
|
{
|
|
|
- //复制
|
|
|
- MenuItem menuItem = popMenu.Items[0] as MenuItem;
|
|
|
- menuItem.CommandTarget = (UIElement)sender;
|
|
|
- menuItem.Command = ApplicationCommands.Paste;
|
|
|
- //添加文本
|
|
|
- menuItem = popMenu.Items[1] as MenuItem;
|
|
|
- menuItem.CommandTarget = (UIElement)sender;
|
|
|
- menuItem.Command = AddTextCommand;
|
|
|
- //添加图像
|
|
|
- menuItem = popMenu.Items[2] as MenuItem;
|
|
|
- menuItem.CommandTarget = (UIElement)sender;
|
|
|
- menuItem.Command = AddImgCommand;
|
|
|
- e.PopupMenu = popMenu;
|
|
|
- if (e.PopupMenu != null)
|
|
|
- {
|
|
|
- e.Handle = true;
|
|
|
- }
|
|
|
+ e.Handle = true;
|
|
|
}
|
|
|
}
|
|
|
else if(e.EditType == ComPDFKit.PDFPage.CPDFEditType.EditImage)
|
|
|
{
|
|
|
- popMenu = App.Current.FindResource("SelectImgMenu") as ContextMenu;
|
|
|
- if (popMenu != null && popMenu.Items.Count == 7)
|
|
|
+ e.PopupMenu = SelectPDFEdit(sender);
|
|
|
+ if (e.PopupMenu != null)
|
|
|
{
|
|
|
- //复制
|
|
|
- MenuItem menuItem = popMenu.Items[0] as MenuItem;
|
|
|
- menuItem.CommandTarget = (UIElement)sender;
|
|
|
- menuItem.Command = ApplicationCommands.Copy;
|
|
|
- //剪切
|
|
|
- menuItem = popMenu.Items[1] as MenuItem;
|
|
|
- menuItem.CommandTarget = (UIElement)sender;
|
|
|
- menuItem.Command = ApplicationCommands.Cut;
|
|
|
- //粘贴
|
|
|
- menuItem = popMenu.Items[2] as MenuItem;
|
|
|
- menuItem.CommandTarget = (UIElement)sender;
|
|
|
- menuItem.Command = ApplicationCommands.Paste;
|
|
|
- //删除
|
|
|
- menuItem = popMenu.Items[3] as MenuItem;
|
|
|
- menuItem.CommandTarget = (UIElement)sender;
|
|
|
- menuItem.Command = ApplicationCommands.Delete;
|
|
|
- //裁剪
|
|
|
- menuItem = popMenu.Items[4] as MenuItem;
|
|
|
- menuItem.CommandTarget = (UIElement)sender;
|
|
|
- menuItem.Command = CropModeCommand;
|
|
|
- //替换
|
|
|
- menuItem = popMenu.Items[5] as MenuItem;
|
|
|
- menuItem.CommandTarget = (UIElement)sender;
|
|
|
- menuItem.Command = ReplaceImgCommand;
|
|
|
- //导出
|
|
|
- menuItem = popMenu.Items[6] as MenuItem;
|
|
|
- menuItem.CommandTarget = (UIElement)sender;
|
|
|
- menuItem.Command =ExportImgCommand;
|
|
|
- e.PopupMenu = popMenu;
|
|
|
- if (e.PopupMenu != null)
|
|
|
- {
|
|
|
- e.Handle = true;
|
|
|
- }
|
|
|
+ e.Handle = true;
|
|
|
}
|
|
|
}
|
|
|
else if(e.EditType == ComPDFKit.PDFPage.CPDFEditType.EditText)
|
|
@@ -630,16 +635,77 @@ namespace PDF_Office.ViewModels.PropertyPanel
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ private ContextMenu EmptyStateMenu(object sender)
|
|
|
+ {
|
|
|
+ var popMenu = App.Current.FindResource("NoneMenu") as ContextMenu;
|
|
|
+ if (popMenu != null && popMenu.Items.Count == 3)
|
|
|
+ {
|
|
|
+ //复制
|
|
|
+ MenuItem menuItem = popMenu.Items[0] as MenuItem;
|
|
|
+ menuItem.CommandTarget = (UIElement)sender;
|
|
|
+ menuItem.Command = ApplicationCommands.Paste;
|
|
|
+ //添加文本
|
|
|
+ menuItem = popMenu.Items[1] as MenuItem;
|
|
|
+ menuItem.CommandTarget = (UIElement)sender;
|
|
|
+ menuItem.Command = AddTextCommand;
|
|
|
+ //添加图像
|
|
|
+ menuItem = popMenu.Items[2] as MenuItem;
|
|
|
+ menuItem.CommandTarget = (UIElement)sender;
|
|
|
+ menuItem.Command = AddImgCommand;
|
|
|
+ }
|
|
|
+ return popMenu;
|
|
|
+ }
|
|
|
+
|
|
|
+ private ContextMenu SelectPDFEdit(object sender)
|
|
|
+ {
|
|
|
+ var popMenu = App.Current.FindResource("SelectImgMenu") as ContextMenu;
|
|
|
+ if (popMenu != null && popMenu.Items.Count == 7)
|
|
|
+ {
|
|
|
+ //复制
|
|
|
+ MenuItem menuItem = popMenu.Items[0] as MenuItem;
|
|
|
+ menuItem.CommandTarget = (UIElement)sender;
|
|
|
+ menuItem.Command = ApplicationCommands.Copy;
|
|
|
+ //剪切
|
|
|
+ menuItem = popMenu.Items[1] as MenuItem;
|
|
|
+ menuItem.CommandTarget = (UIElement)sender;
|
|
|
+ menuItem.Command = ApplicationCommands.Cut;
|
|
|
+ //粘贴
|
|
|
+ menuItem = popMenu.Items[2] as MenuItem;
|
|
|
+ menuItem.CommandTarget = (UIElement)sender;
|
|
|
+ menuItem.Command = ApplicationCommands.Paste;
|
|
|
+ //删除
|
|
|
+ menuItem = popMenu.Items[3] as MenuItem;
|
|
|
+ menuItem.CommandTarget = (UIElement)sender;
|
|
|
+ menuItem.Command = ApplicationCommands.Delete;
|
|
|
+ //裁剪
|
|
|
+ menuItem = popMenu.Items[4] as MenuItem;
|
|
|
+ menuItem.CommandTarget = (UIElement)sender;
|
|
|
+ menuItem.Command = CropModeCommand;
|
|
|
+ //替换
|
|
|
+ menuItem = popMenu.Items[5] as MenuItem;
|
|
|
+ menuItem.CommandTarget = (UIElement)sender;
|
|
|
+ menuItem.Command = ReplaceImgCommand;
|
|
|
+ //导出
|
|
|
+ menuItem = popMenu.Items[6] as MenuItem;
|
|
|
+ menuItem.CommandTarget = (UIElement)sender;
|
|
|
+ menuItem.Command = ExportImgCommand;
|
|
|
+
|
|
|
+ }
|
|
|
+ return popMenu;
|
|
|
+ }
|
|
|
+
|
|
|
private void PDFViewer_PDFEditActiveHandler(object sender, List<PDFEditEvent> e)
|
|
|
{
|
|
|
if(e != null && e.Count > 0)
|
|
|
{
|
|
|
+
|
|
|
+ ReLoadLayoutAlign(e.Count);
|
|
|
+
|
|
|
IsTextEdit = (e[0].EditType == ComPDFKit.PDFPage.CPDFEditType.EditText);
|
|
|
TextEditEvent = e[0];
|
|
|
|
|
|
if (IsTextEdit == false)
|
|
|
{
|
|
|
-
|
|
|
var list = PDFViewer.GetSelectedImages();
|
|
|
if(list != null && list.Count > 0)
|
|
|
{
|
|
@@ -669,8 +735,26 @@ namespace PDF_Office.ViewModels.PropertyPanel
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
+ IsLayoutAlign = false;
|
|
|
+ IsLayoutAvgAlign = false;
|
|
|
+ ClearCheckedAglin?.Invoke(null, null);
|
|
|
IsTextEdit = true;
|
|
|
}
|
|
|
}
|
|
|
+
|
|
|
+ private void ReLoadLayoutAlign(int count)
|
|
|
+ {
|
|
|
+ if (count >= 2)
|
|
|
+ IsLayoutAlign = true;
|
|
|
+ else
|
|
|
+ IsLayoutAlign = false;
|
|
|
+
|
|
|
+ if (count >= 3)
|
|
|
+ IsLayoutAvgAlign = true;
|
|
|
+ else
|
|
|
+ IsLayoutAvgAlign = false;
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
}
|
|
|
}
|