|
@@ -22,10 +22,10 @@ using PDF_Office.ViewModels.Tools;
|
|
|
|
|
|
namespace PDF_Office.ViewModels
|
|
|
{
|
|
|
-
|
|
|
public class ViewContentViewModel : BindableBase, INavigationAware
|
|
|
{
|
|
|
#region 属性、变量
|
|
|
+
|
|
|
private CPDFViewer PDFViewer { get; set; }
|
|
|
|
|
|
private MainContentViewModel mainViewModel { get; set; }
|
|
@@ -58,8 +58,8 @@ namespace PDF_Office.ViewModels
|
|
|
|
|
|
public Action PageEditRedo { get; set; }
|
|
|
|
|
|
-
|
|
|
private int gridToolRow = 1;
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 控制ToolContent的Row
|
|
|
/// </summary>
|
|
@@ -73,6 +73,7 @@ namespace PDF_Office.ViewModels
|
|
|
}
|
|
|
|
|
|
private int gridToolRowSpan = 3;
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 控制ToolContent的RowSpan
|
|
|
/// </summary>
|
|
@@ -86,6 +87,7 @@ namespace PDF_Office.ViewModels
|
|
|
}
|
|
|
|
|
|
private Visibility toolContentVisible = Visibility.Collapsed;
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 控制Content的显示 用于显示水印、贝茨码、密文等功能模块
|
|
|
/// 留意:显示前需要先注入内容、设置好行和跨行数
|
|
@@ -100,6 +102,7 @@ namespace PDF_Office.ViewModels
|
|
|
}
|
|
|
|
|
|
private Visibility isLoading = Visibility.Collapsed;
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 是否正在加载中
|
|
|
/// </summary>
|
|
@@ -113,6 +116,7 @@ namespace PDF_Office.ViewModels
|
|
|
}
|
|
|
|
|
|
private Visibility toolsbarContentVisible = Visibility.Collapsed;
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 控制ToolsBarContent的显示
|
|
|
/// 留意:显示前需要先注入内容、设置好行和跨行数
|
|
@@ -127,6 +131,7 @@ namespace PDF_Office.ViewModels
|
|
|
}
|
|
|
|
|
|
private bool isPorpertyOpen = false;
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 属性栏是否展开
|
|
|
/// </summary>
|
|
@@ -139,8 +144,8 @@ namespace PDF_Office.ViewModels
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
private bool canSave;
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 是否可以保存
|
|
|
/// </summary>
|
|
@@ -176,6 +181,7 @@ namespace PDF_Office.ViewModels
|
|
|
}
|
|
|
|
|
|
private GridLength botaWidth = new GridLength(48);
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// BOTA栏的宽度
|
|
|
/// </summary>
|
|
@@ -185,7 +191,7 @@ namespace PDF_Office.ViewModels
|
|
|
set
|
|
|
{
|
|
|
SetProperty(ref botaWidth, value);
|
|
|
- if(botaWidth.Value<=48)
|
|
|
+ if (botaWidth.Value <= 48)
|
|
|
{
|
|
|
OpenBOTA = false;
|
|
|
}
|
|
@@ -193,22 +199,23 @@ namespace PDF_Office.ViewModels
|
|
|
}
|
|
|
|
|
|
private bool openBOTA = false;
|
|
|
+
|
|
|
/// <summary>
|
|
|
/// 是否展开BOTA
|
|
|
/// </summary>
|
|
|
public bool OpenBOTA
|
|
|
{
|
|
|
get { return openBOTA; }
|
|
|
- set {
|
|
|
- openBOTA = value;
|
|
|
- if(openBOTA)
|
|
|
+ set
|
|
|
+ {
|
|
|
+ openBOTA = value;
|
|
|
+ if (openBOTA)
|
|
|
{
|
|
|
BOTAWidth = new GridLength(256);
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
private Dictionary<string, string> regionNameByTabItem;
|
|
|
|
|
|
private Dictionary<string, string> barContentByTabItem;
|
|
@@ -226,10 +233,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; }
|
|
@@ -243,7 +251,8 @@ namespace PDF_Office.ViewModels
|
|
|
public DelegateCommand UndoCommand { get; set; }
|
|
|
|
|
|
public DelegateCommand RedoCommand { get; set; }
|
|
|
- #endregion
|
|
|
+
|
|
|
+ #endregion 命令
|
|
|
|
|
|
public ViewContentViewModel(IRegionManager regionManager, IDialogService dialogService)
|
|
|
{
|
|
@@ -252,7 +261,7 @@ namespace PDF_Office.ViewModels
|
|
|
|
|
|
LoadFile = new DelegateCommand(loadFile);
|
|
|
Load = new DelegateCommand(LoadControl);
|
|
|
- SaveFile = new DelegateCommand(()=> { saveFile(); });
|
|
|
+ SaveFile = new DelegateCommand(() => { saveFile(); });
|
|
|
SaveAsFile = new DelegateCommand(() => { saveAsFile(); });
|
|
|
UndoCommand = new DelegateCommand(Undo);
|
|
|
RedoCommand = new DelegateCommand(Redo);
|
|
@@ -307,11 +316,11 @@ namespace PDF_Office.ViewModels
|
|
|
{
|
|
|
CanSave = PDFViewer.UndoManager.CanSave;
|
|
|
}
|
|
|
- if(e.PropertyName == "CanUndo")
|
|
|
+ if (e.PropertyName == "CanUndo")
|
|
|
{
|
|
|
CanUndo = PDFViewer.UndoManager.CanUndo;
|
|
|
}
|
|
|
- if(e.PropertyName =="CanRedo")
|
|
|
+ if (e.PropertyName == "CanRedo")
|
|
|
{
|
|
|
CanRedo = PDFViewer.UndoManager.CanRedo;
|
|
|
}
|
|
@@ -330,7 +339,7 @@ namespace PDF_Office.ViewModels
|
|
|
currentBar = item.Name;
|
|
|
if (previousBar != currentBar)
|
|
|
{
|
|
|
- if(currentBar== "TabItemPageEdit")//如果是页面编辑则进入页面编辑模式
|
|
|
+ if (currentBar == "TabItemPageEdit")//如果是页面编辑则进入页面编辑模式
|
|
|
{
|
|
|
EnterToolMode(barContentByTabItem[currentBar]);
|
|
|
isInPageEdit = true;
|
|
@@ -346,6 +355,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);
|
|
@@ -380,9 +390,11 @@ namespace PDF_Office.ViewModels
|
|
|
}
|
|
|
return standardZoom / 100;
|
|
|
}
|
|
|
- #endregion
|
|
|
+
|
|
|
+ #endregion PDFViewer鼠标滚轮缩放事件
|
|
|
|
|
|
#region Navigate
|
|
|
+
|
|
|
public void OnNavigatedTo(NavigationContext navigationContext)
|
|
|
{
|
|
|
if (isOpenFile)
|
|
@@ -400,7 +412,6 @@ namespace PDF_Office.ViewModels
|
|
|
loadFile();
|
|
|
}
|
|
|
|
|
|
-
|
|
|
isOpenFile = true;
|
|
|
}
|
|
|
|
|
@@ -411,14 +422,15 @@ namespace PDF_Office.ViewModels
|
|
|
|
|
|
public void OnNavigatedFrom(NavigationContext navigationContext)
|
|
|
{
|
|
|
-
|
|
|
}
|
|
|
- #endregion
|
|
|
+
|
|
|
+ #endregion Navigate
|
|
|
|
|
|
#region 方法
|
|
|
+
|
|
|
private void Undo()
|
|
|
{
|
|
|
- if(isInPageEdit)
|
|
|
+ if (isInPageEdit)
|
|
|
{
|
|
|
//执行页面编辑的Undo
|
|
|
PageEditUndo?.Invoke();
|
|
@@ -431,7 +443,7 @@ namespace PDF_Office.ViewModels
|
|
|
|
|
|
private void Redo()
|
|
|
{
|
|
|
- if(isInPageEdit)
|
|
|
+ if (isInPageEdit)
|
|
|
{
|
|
|
//执行页面编辑的Redo
|
|
|
PageEditRedo?.Invoke();
|
|
@@ -450,7 +462,7 @@ 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(BOTARegionName, "BOTAContent", parameters);
|
|
|
region.RequestNavigate(BottomToolRegionName, "BottomToolContent", parameters);
|
|
|
|
|
|
//TODO 根据上一次关闭记录的菜单,选中TabItem
|
|
@@ -469,7 +481,6 @@ namespace PDF_Office.ViewModels
|
|
|
region.RequestNavigate(PropertyRegionName, Content, parameters);
|
|
|
}
|
|
|
));
|
|
|
-
|
|
|
}
|
|
|
|
|
|
/// <summary>
|
|
@@ -672,10 +683,10 @@ namespace PDF_Office.ViewModels
|
|
|
/// 显示前添加内容到Region
|
|
|
/// </summary>
|
|
|
/// <param name="isPageEdit"></param>
|
|
|
- private void ShowContent(string currentBar,bool isToolMode=false)
|
|
|
+ private void ShowContent(string currentBar, bool isToolMode = false)
|
|
|
{
|
|
|
//显示页面编辑或其他工具
|
|
|
- if (currentBar == "TabItemPageEdit"||isToolMode)
|
|
|
+ if (currentBar == "TabItemPageEdit" || isToolMode)
|
|
|
{
|
|
|
if (currentBar == "TabItemPageEdit")//进入页面编辑
|
|
|
{
|
|
@@ -718,7 +729,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)
|
|
@@ -736,7 +747,7 @@ namespace PDF_Office.ViewModels
|
|
|
param = valuePairs;
|
|
|
}
|
|
|
region.RequestNavigate(ToolContentRegionName, targetToolMode, param);
|
|
|
- ShowContent(currentBar,true);
|
|
|
+ ShowContent(currentBar, true);
|
|
|
|
|
|
IsLoading = Visibility.Collapsed;
|
|
|
}
|
|
@@ -757,9 +768,7 @@ namespace PDF_Office.ViewModels
|
|
|
{
|
|
|
ToolContentVisible = Visibility.Collapsed;
|
|
|
}
|
|
|
- #endregion
|
|
|
- }
|
|
|
-}
|
|
|
-
|
|
|
-
|
|
|
|
|
|
+ #endregion 方法
|
|
|
+ }
|
|
|
+}
|