|
@@ -19,13 +19,14 @@ using System.IO;
|
|
|
using PDFSettings;
|
|
|
using ComPDFKitViewer.AnnotEvent;
|
|
|
using PDF_Office.ViewModels.Tools;
|
|
|
+using PDF_Office.Views;
|
|
|
|
|
|
namespace PDF_Office.ViewModels
|
|
|
{
|
|
|
-
|
|
|
public class ViewContentViewModel : BindableBase, INavigationAware
|
|
|
{
|
|
|
#region 属性、变量
|
|
|
+
|
|
|
private CPDFViewer PDFViewer { get; set; }
|
|
|
|
|
|
private MainContentViewModel mainViewModel { get; set; }
|
|
@@ -44,6 +45,8 @@ namespace PDF_Office.ViewModels
|
|
|
|
|
|
public string ToolsBarContentRegionName { get; set; }
|
|
|
|
|
|
+ public string ReadModeRegionName { get; set; }
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 底部工具栏 RegionName
|
|
|
/// </summary>
|
|
@@ -58,8 +61,8 @@ namespace PDF_Office.ViewModels
|
|
|
|
|
|
public Action PageEditRedo { get; set; }
|
|
|
|
|
|
-
|
|
|
private int gridToolRow = 1;
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 控制ToolContent的Row
|
|
|
/// </summary>
|
|
@@ -73,6 +76,7 @@ namespace PDF_Office.ViewModels
|
|
|
}
|
|
|
|
|
|
private int gridToolRowSpan = 3;
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 控制ToolContent的RowSpan
|
|
|
/// </summary>
|
|
@@ -86,6 +90,7 @@ namespace PDF_Office.ViewModels
|
|
|
}
|
|
|
|
|
|
private Visibility toolContentVisible = Visibility.Collapsed;
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 控制Content的显示 用于显示水印、贝茨码、密文等功能模块
|
|
|
/// 留意:显示前需要先注入内容、设置好行和跨行数
|
|
@@ -100,6 +105,7 @@ namespace PDF_Office.ViewModels
|
|
|
}
|
|
|
|
|
|
private Visibility isLoading = Visibility.Collapsed;
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 是否正在加载中
|
|
|
/// </summary>
|
|
@@ -113,6 +119,7 @@ namespace PDF_Office.ViewModels
|
|
|
}
|
|
|
|
|
|
private Visibility toolsbarContentVisible = Visibility.Collapsed;
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 控制ToolsBarContent的显示
|
|
|
/// 留意:显示前需要先注入内容、设置好行和跨行数
|
|
@@ -127,6 +134,7 @@ namespace PDF_Office.ViewModels
|
|
|
}
|
|
|
|
|
|
private bool isPorpertyOpen = false;
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 属性栏是否展开
|
|
|
/// </summary>
|
|
@@ -139,8 +147,22 @@ namespace PDF_Office.ViewModels
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ private Visibility isReadMode = Visibility.Visible;
|
|
|
+
|
|
|
+ /// <summary>
|
|
|
+ ///是否为阅读模式
|
|
|
+ /// </summary>
|
|
|
+ public Visibility IsReadMode
|
|
|
+ {
|
|
|
+ get { return isReadMode; }
|
|
|
+ set
|
|
|
+ {
|
|
|
+ SetProperty(ref isReadMode, value);
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
private bool canSave;
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 是否可以保存
|
|
|
/// </summary>
|
|
@@ -154,6 +176,7 @@ namespace PDF_Office.ViewModels
|
|
|
}
|
|
|
|
|
|
private bool canUndo;
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 是否可以进行Undo
|
|
|
/// </summary>
|
|
@@ -167,6 +190,7 @@ namespace PDF_Office.ViewModels
|
|
|
}
|
|
|
|
|
|
private bool canRedo;
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 是否可以进行Redo
|
|
|
/// </summary>
|
|
@@ -180,6 +204,7 @@ namespace PDF_Office.ViewModels
|
|
|
}
|
|
|
|
|
|
private GridLength botaWidth = new GridLength(48);
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// BOTA栏的宽度
|
|
|
/// </summary>
|
|
@@ -197,6 +222,7 @@ namespace PDF_Office.ViewModels
|
|
|
}
|
|
|
|
|
|
private int selectedIndex;
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 工具栏选中项的索引
|
|
|
/// </summary>
|
|
@@ -209,8 +235,8 @@ namespace PDF_Office.ViewModels
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
private bool openBOTA = false;
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 是否展开BOTA
|
|
|
/// </summary>
|
|
@@ -227,7 +253,6 @@ namespace PDF_Office.ViewModels
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
private Dictionary<string, string> regionNameByTabItem;
|
|
|
|
|
|
private Dictionary<string, string> barContentByTabItem;
|
|
@@ -245,9 +270,11 @@ namespace PDF_Office.ViewModels
|
|
|
/// 鼠标滚轮缩放的缩放值
|
|
|
/// </summary>
|
|
|
private double[] zoomLevel = { 1.00f, 10, 25, 50, 75, 100, 125, 150, 200, 300, 400, 600, 800, 1000 };
|
|
|
- #endregion
|
|
|
+
|
|
|
+ #endregion 属性、变量
|
|
|
|
|
|
#region 命令
|
|
|
+
|
|
|
public DelegateCommand LoadFile { get; set; }
|
|
|
|
|
|
public DelegateCommand Load { get; set; }
|
|
@@ -261,7 +288,10 @@ namespace PDF_Office.ViewModels
|
|
|
public DelegateCommand UndoCommand { get; set; }
|
|
|
|
|
|
public DelegateCommand RedoCommand { get; set; }
|
|
|
- #endregion
|
|
|
+
|
|
|
+ public DelegateCommand<object> MenuEnterReadMode { get; set; }
|
|
|
+
|
|
|
+ #endregion 命令
|
|
|
|
|
|
public ViewContentViewModel(IRegionManager regionManager, IDialogService dialogService)
|
|
|
{
|
|
@@ -280,6 +310,8 @@ namespace PDF_Office.ViewModels
|
|
|
BOTARegionName = RegionNames.BOTARegionName;
|
|
|
PropertyRegionName = RegionNames.PropertyRegionName;
|
|
|
BottomToolRegionName = RegionNames.BottomToolRegionName;
|
|
|
+ ReadModeRegionName = RegionNames.ReadModeRegionName;
|
|
|
+ MenuEnterReadMode = new DelegateCommand<object>(MenuEnterReadModeEvent);
|
|
|
|
|
|
//未显示时无法注册上Region名称
|
|
|
ToolContentVisible = Visibility.Visible;
|
|
@@ -294,6 +326,10 @@ namespace PDF_Office.ViewModels
|
|
|
InitialbarContentByTabItem(ref barContentByTabItem);
|
|
|
}
|
|
|
|
|
|
+ private void MenuEnterReadModeEvent(object obj)
|
|
|
+ {
|
|
|
+ }
|
|
|
+
|
|
|
private void InitialregionNameByTabItem(ref Dictionary<string, string> dictionary)
|
|
|
{
|
|
|
dictionary.Add("TabItemPageEdit", ToolContentRegionName);
|
|
@@ -364,6 +400,7 @@ namespace PDF_Office.ViewModels
|
|
|
}
|
|
|
|
|
|
#region PDFViewer鼠标滚轮缩放事件
|
|
|
+
|
|
|
public void PdfViewer_MouseWheelZoomHandler(object sender, bool e)
|
|
|
{
|
|
|
double newZoom = CheckZoomLevel(PDFViewer.ZoomFactor + (e ? 0.01 : -0.01), e);
|
|
@@ -398,9 +435,11 @@ namespace PDF_Office.ViewModels
|
|
|
}
|
|
|
return standardZoom / 100;
|
|
|
}
|
|
|
- #endregion
|
|
|
+
|
|
|
+ #endregion PDFViewer鼠标滚轮缩放事件
|
|
|
|
|
|
#region Navigate
|
|
|
+
|
|
|
public void OnNavigatedTo(NavigationContext navigationContext)
|
|
|
{
|
|
|
if (isOpenFile)
|
|
@@ -418,7 +457,6 @@ namespace PDF_Office.ViewModels
|
|
|
loadFile();
|
|
|
}
|
|
|
|
|
|
-
|
|
|
isOpenFile = true;
|
|
|
}
|
|
|
|
|
@@ -429,11 +467,12 @@ namespace PDF_Office.ViewModels
|
|
|
|
|
|
public void OnNavigatedFrom(NavigationContext navigationContext)
|
|
|
{
|
|
|
-
|
|
|
}
|
|
|
- #endregion
|
|
|
+
|
|
|
+ #endregion Navigate
|
|
|
|
|
|
#region 方法
|
|
|
+
|
|
|
private void Undo()
|
|
|
{
|
|
|
if (isInPageEdit)
|
|
@@ -468,8 +507,10 @@ namespace PDF_Office.ViewModels
|
|
|
NavigationParameters parameters = new NavigationParameters();
|
|
|
parameters.Add(ParameterNames.PDFViewer, PDFViewer);
|
|
|
parameters.Add(ParameterNames.ViewContentViewModel, this);
|
|
|
+
|
|
|
region.RequestNavigate(BOTARegionName, "BOTAContent", parameters);
|
|
|
region.RequestNavigate(BottomToolRegionName, "BottomToolContent", parameters);
|
|
|
+ region.RequestNavigate(ReadModeRegionName, "ReadModeContent", parameters);
|
|
|
|
|
|
//TODO 根据上一次关闭记录的菜单,选中TabItem
|
|
|
EnterSelectedBar("TabItemAnnotation");
|
|
@@ -487,7 +528,6 @@ namespace PDF_Office.ViewModels
|
|
|
region.RequestNavigate(PropertyRegionName, Content, parameters);
|
|
|
}
|
|
|
));
|
|
|
-
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
@@ -736,7 +776,7 @@ namespace PDF_Office.ViewModels
|
|
|
|
|
|
/// <summary>
|
|
|
/// 进入工具编辑(如页面编辑、水印、密文等)模式
|
|
|
- /// </summary>
|
|
|
+ /// </summary>
|
|
|
/// <param name="targetToolMode">要导航过去的控件名称</param>
|
|
|
/// <param name="valuePairs">导航需要传送的参数,为空时,默认传送PDFView和ViewContentViewModel</param>
|
|
|
private async void EnterToolMode(string targetToolMode, NavigationParameters valuePairs = null)
|
|
@@ -780,9 +820,7 @@ namespace PDF_Office.ViewModels
|
|
|
isInPageEdit = false;
|
|
|
}
|
|
|
}
|
|
|
- #endregion
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-
|
|
|
|
|
|
+ #endregion 方法
|
|
|
+ }
|
|
|
+}
|