Browse Source

其他-调整公共进入工具模式方法

ZhouJieSheng 2 years ago
parent
commit
dd4da12405

+ 56 - 27
PDF Office/ViewModels/ViewContentViewModel.cs

@@ -21,6 +21,7 @@ namespace PDF_Office.ViewModels
 
     public class ViewContentViewModel : BindableBase, INavigationAware
     {
+        #region 属性、变量
         private CPDFViewer PDFViewer { get; set; }
 
         private MainContentViewModel mainViewModel { get; set; }
@@ -37,12 +38,6 @@ namespace PDF_Office.ViewModels
 
         public string ToolContentRegionName { get; set; }
 
-        public DelegateCommand LoadFile { get; set; }
-
-        public DelegateCommand Load { get; set; }
-
-        public DelegateCommand<object> TabControlSelectionChangedCommand { get; set; }
-
 
         private int gridToolRow = 1;
         /// <summary>
@@ -72,7 +67,7 @@ namespace PDF_Office.ViewModels
 
         private Visibility toolContentVisible = Visibility.Visible;
         /// <summary>
-        /// 控制Content的显示
+        /// 控制Content的显示 用于显示水印、贝茨码、密文等功能模块
         /// 留意:显示前需要先注入内容、设置好行和跨行数
         /// </summary>
         public Visibility ToolContentVisible
@@ -84,15 +79,26 @@ namespace PDF_Office.ViewModels
             }
         }
 
-
+        /// <summary>
+        /// 用来避免重复触发导航事件的标志符
+        /// </summary>
         private bool isOpenFile = false;
 
         /// <summary>
         /// 鼠标滚轮缩放的缩放值
         /// </summary>
         private double[] zoomLevel = { 1.00f, 10, 25, 50, 75, 100, 125, 150, 200, 300, 400, 600, 800, 1000 };
+        #endregion
+
+        #region 命令
+        public DelegateCommand LoadFile { get; set; }
 
-        public ViewContentViewModel(IRegionManager regionManager,IDialogService dialogService)
+        public DelegateCommand Load { get; set; }
+
+        public DelegateCommand<object> TabControlSelectionChangedCommand { get; set; }
+        #endregion
+
+        public ViewContentViewModel(IRegionManager regionManager, IDialogService dialogService)
         {
             region = regionManager;
             dialogs = dialogService;
@@ -104,6 +110,7 @@ namespace PDF_Office.ViewModels
             ViwerRegionName = Guid.NewGuid().ToString();
             BOTARegionName = Guid.NewGuid().ToString();
             PropertyRegionName = Guid.NewGuid().ToString();
+            //未显示时无法注册上Region名称
             ToolContentVisible = Visibility.Visible;
             ToolContentRegionName = Guid.NewGuid().ToString();
             ToolContentVisible = Visibility.Collapsed;
@@ -128,19 +135,23 @@ namespace PDF_Office.ViewModels
             region.AddToRegion(ViwerRegionName, PDFViewer);
         }
 
+        /// <summary>
+        /// 选项卡切换事件
+        /// </summary>
+        /// <param name="e"></param>
         private void TabControlSelectonChangedEvent(object e)
         {
             var args = e as SelectionChangedEventArgs;
-            if(args!=null)
+            if (args != null)
             {
                 var item = args.AddedItems[0] as TabItem;
-                if(item.Name=="TabItemPageEdit")
+                if (item.Name == "TabItemPageEdit")
                 {
-                    EnterPageEdit();
+                    EnterToolMode("PageEditContent");
                 }
                 else
                 {
-                    ExitPageEdit();
+                    ExitToolMode();
                 }
             }
         }
@@ -194,7 +205,7 @@ namespace PDF_Office.ViewModels
                 mainViewModel = mainVM;
             }
             var pdfview = navigationContext.Parameters[ParameterNames.PDFViewer] as CPDFViewer;
-            if (pdfview!=null)
+            if (pdfview != null)
             {
                 PDFViewer = pdfview;
                 loadFile();
@@ -215,6 +226,7 @@ namespace PDF_Office.ViewModels
         }
         #endregion
 
+        #region 方法
         /// <summary>
         /// 显示前添加内容到Region
         /// </summary>
@@ -222,18 +234,18 @@ namespace PDF_Office.ViewModels
         private void ShowToolContent(bool isPageEdit = true)
         {
             //显示页面编辑
-            if(isPageEdit)
+            if (isPageEdit)
             {
-                if(GridToolRow!=1)
+                if (GridToolRow != 1)
                 {
                     GridToolRow = 1;
                 }
 
-                if(GridToolRowSpan!=3)
+                if (GridToolRowSpan != 3)
                 {
                     GridToolRowSpan = 3;
                 }
-         
+
             }
             else
             {
@@ -245,25 +257,42 @@ namespace PDF_Office.ViewModels
         }
 
         /// <summary>
-        /// 进入页面编辑模式
+        /// 进入工具编辑(如页面编辑、水印、密文等)模式
         /// </summary>
-        private void EnterPageEdit()
+        /// <param name="targetToolMode">要导航过去的控件名称</param>
+        /// <param name="valuePairs">导航需要传送的参数,为空时,默认传送PDFView和ViewContentViewModel</param>
+        private void EnterToolMode(string targetToolMode, NavigationParameters valuePairs = null)
         {
             NavigationParameters param = new NavigationParameters();
-            param.Add(ParameterNames.PDFViewer, PDFViewer);
-            param.Add(ParameterNames.ViewContentViewModel,this);
-            region.RequestNavigate(ToolContentRegionName, "PageEditContent" , param);
-            ShowToolContent();
-         
+            if (valuePairs == null)
+            {
+                param.Add(ParameterNames.PDFViewer, PDFViewer);
+                param.Add(ParameterNames.ViewContentViewModel, this);
+            }
+            else//有传入其他内容的参数时
+            {
+                param = valuePairs;
+            }
+            region.RequestNavigate(ToolContentRegionName, targetToolMode, param);
+
+            if (targetToolMode == "PageEditContent")
+            {
+                ShowToolContent();
+            }
+            else
+            {
+                ShowToolContent(false);
+            }
         }
 
         /// <summary>
-        /// 退出页面编辑模式,隐藏ToolContent
+        /// 退出工具(水印、密文等)编辑模式,隐藏ToolContent
         /// </summary>
 
-        public void ExitPageEdit()
+        public void ExitToolMode()
         {
             ToolContentVisible = Visibility.Collapsed;
         }
+        #endregion
     }
 }

+ 1 - 1
PDF Office/Views/MainWindow.xaml.cs

@@ -77,7 +77,7 @@ namespace PDF_Office.Views
             aggregator?.GetEvent<DragablzWindowEvent>().Publish(new DragablzWindowEventArgs() { TabControl = TabablzControl, Type = DragablzWindowEventType.Closed });
         }
 
-        public async void LoadPdfViewer(string[] filePaths)
+        public void LoadPdfViewer(string[] filePaths)
         {
             var content = App.mainWindowViewModel.SelectedItem.DataContext as MainContentViewModel;
             if (filePaths.Count() == 1)

+ 1 - 0
PDF Office/Views/ViewContent.xaml

@@ -165,6 +165,7 @@
         </Grid>
         <local:BottomToolContent Grid.Row="3" />
 
+        <!--  用于显示页面编辑、水印、背景、标记密文等功能的区域  -->
         <ContentControl
             Name="ContentTool"
             Grid.Row="{Binding GridToolRow}"