using ComPDFKitViewer.AnnotEvent;
using ComPDFKitViewer.PdfViewer;
using PDF_Office.CustomControl;
using PDF_Office.ViewModels.PropertyPanel.AnnotPanel;
using Prism.Commands;
using Prism.Events;
using Prism.Regions;
using Prism.Services.Dialogs;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Media;
namespace PDF_Office.ViewModels.Tools
{
///
/// 改变工具栏注释属性值,主要用来传参数:注释属性和同步工具栏对应图标的属性(颜色)
///
public class AnnotPropertyPanel
{
public AnnotAttribEvent AnnotEvent { get; set; }
public List AnnotEvents = new List();
public AnnotHandlerEventArgs annot;
public List annotlists;
public event EventHandler> DataChanged;
public event EventHandler> AnnotTypeChanged;
public event EventHandler DefaultStored;
public AnnotPropertyPanel()
{ }
///
/// 触发到工具栏注释工具,改变工具图标下的颜色值
///
///
///
public void DataChangedInvoke(object sender, Dictionary keyValues)
{
DataChanged?.Invoke(sender, keyValues);
}
public void AnnotTypeChangedInvoke(object sender, Dictionary keyValues)
{
AnnotTypeChanged?.Invoke(sender, keyValues);
}
}
public sealed partial class AnnotToolContentViewModel
{
#region 属性
#region 注释工具
//高亮
private Brush highLightColor = new SolidColorBrush(Color.FromRgb(0xFF, 0xBB, 0x00));
public Brush HighLightColor
{ get { return highLightColor; } set { SetProperty(ref highLightColor, value); } }
//
private double highLightOpacity = 1;
public double HighLightOpacity
{ get { return highLightOpacity; } set { SetProperty(ref highLightOpacity, value); } }
//
private Brush underLine = new SolidColorBrush(Color.FromRgb(0xFF, 0xBB, 0x00));
public Brush UnderLineColor
{ get { return underLine; } set { SetProperty(ref underLine, value); } }
//
private double underLineOpacity = 1;
public double UnderLineOpacity
{ get { return underLineOpacity; } set { SetProperty(ref underLineOpacity, value); } }
//
private Brush squigglyColor = new SolidColorBrush(Color.FromRgb(0xFF, 0xBB, 0x00));
public Brush SquigglyColor
{ get { return squigglyColor; } set { SetProperty(ref squigglyColor, value); } }
//
private double squigglyOpacity = 1;
public double SquigglyOpacity
{ get { return squigglyOpacity; } set { SetProperty(ref squigglyOpacity, value); } }
//
private Brush strikeoutColor = new SolidColorBrush(Color.FromRgb(0xFF, 0xBB, 0x00));
public Brush StrikeoutColor
{ get { return strikeoutColor; } set { SetProperty(ref strikeoutColor, value); } }
//
private double strikeoutOpacity = 1;
public double StrikeoutOpacity
{ get { return strikeoutOpacity; } set { SetProperty(ref strikeoutOpacity, value); } }
private bool btnSelecttoolIsChecked = false;
public bool BtnSelecttoolIsChecked
{
get { return btnSelecttoolIsChecked; }
set
{
SetProperty(ref btnSelecttoolIsChecked, value);
}
}
private bool btnLinkIsChecked = false;
public bool BtnLinkIsChecked
{
get { return btnLinkIsChecked; }
set
{
SetProperty(ref btnLinkIsChecked, value);
}
}
private bool btnHandIsChecked = false;
public bool BtnHandIsChecked
{
get { return btnHandIsChecked; }
set
{
SetProperty(ref btnHandIsChecked, value);
}
}
#endregion 注释工具
#endregion 属性
public string PropertyRegionName { get; set; }
private IEventAggregator events;
public IDialogService dialogs;
public IRegionManager region;
private CPDFViewer PDFViewer;
private ViewContentViewModel viewContentViewModel;
private AnnotPropertyPanel propertyPanel = new AnnotPropertyPanel();
private Dictionary ToolExpandDict = new Dictionary();
private bool isHiddenAnnot = true;
private bool isAddBookMark = true;
private bool isRightMenuAddAnnot = false;
#region 事件
public DelegateCommand MyToolsCommand { get; set; }
private SnapshotEditMenuViewModel snapshotEditMenuViewModel = new SnapshotEditMenuViewModel();
public SnapshotEditMenuViewModel SnapshotEditMenuViewModel { get => snapshotEditMenuViewModel; set => snapshotEditMenuViewModel = value; }
public DelegateCommand SetAddAnnotationCommand { get; set; }
#endregion 事件
}
public enum AddAnnotType
{
AnnotFreehand,//绘制
AnnotFreeText = 1,//文本
AnnotSticky,//便签
AnnotSquare,//矩形
AnnotCircle,//椭圆形
AnnotArrow,//箭头
AnnotLine,//直线
AnnotLink,//链接
AnnotStamp,//图章
AnnotAutograph //签名
}
}