瀏覽代碼

其他-记录当前文档的参数 初版

OYXH\oyxh 2 年之前
父節點
當前提交
e4f0c6906e

+ 17 - 6
PDF Office/ViewModels/BottomToolContentViewModel.cs

@@ -19,6 +19,7 @@ using PDF_Office.ViewModels.BOTA;
 using PDF_Office.Views.BOTA;
 using PDF_Office.Views.PropertyPanel.AnnotPanel;
 using PDF_Office.Views.Tools;
+using PDFSettings.Settings;
 
 namespace PDF_Office.ViewModels
 {
@@ -220,11 +221,12 @@ namespace PDF_Office.ViewModels
 
         private Stack<int> RedoStack = new Stack<int>();
 
-
         public CPDFViewer PDFViewer { get; set; }
 
         public ViewContentViewModel ViewContentViewModel { get; set; }
 
+        public OpenFileInfo OpenFileInfo = null;
+
         /// <summary>
         /// 来自undo redo方法的跳页 不计入栈
         /// </summary>
@@ -267,9 +269,9 @@ namespace PDF_Office.ViewModels
             RedoStack.Push(PDFViewer.CurrentIndex);
             IsNextEnable = true;
 
-            int index =  UndoStack.Pop();
+            int index = UndoStack.Pop();
             PDFViewer.GoToPage(index);
-            if(UndoStack.Count<=0)
+            if (UndoStack.Count <= 0)
             {
                 IsPreEnable = false;
             }
@@ -560,7 +562,7 @@ namespace PDF_Office.ViewModels
                 {
                     CurrentPage = renderData.PageIndex;
                     PageCount = PDFViewer.Document.PageCount;
-                    if(!renderData.IsMouseWheel&&!isFromMethod)
+                    if (!renderData.IsMouseWheel && !isFromMethod)
                     {
                         UndoStack.Push(oldPageIndex);
                         RedoStack.Clear();
@@ -597,7 +599,6 @@ namespace PDF_Office.ViewModels
             }
         }
 
-
         private void GetModeView(ViewMode mode)
         {
             if ((int)mode % 2 == 0)
@@ -647,14 +648,17 @@ namespace PDF_Office.ViewModels
                     if (IsSingleView)
                     {
                         PDFViewer.ChangeViewMode(ViewMode.SingleContinuous);
+                        OpenFileInfo.LastViewMode = ViewMode.SingleContinuous;
                     }
                     else if (IsDoubleView)
                     {
                         PDFViewer.ChangeViewMode(ViewMode.DoubleContinuous);
+                        OpenFileInfo.LastViewMode = ViewMode.DoubleContinuous;
                     }
                     else
                     {
                         PDFViewer.ChangeViewMode(ViewMode.BookContinuous);
+                        OpenFileInfo.LastViewMode = ViewMode.BookContinuous;
                     }
                 }
                 else
@@ -662,14 +666,17 @@ namespace PDF_Office.ViewModels
                     if (IsSingleView)
                     {
                         PDFViewer.ChangeViewMode(ViewMode.Single);
+                        OpenFileInfo.LastViewMode = ViewMode.Single;
                     }
                     else if (IsDoubleView)
                     {
                         PDFViewer.ChangeViewMode(ViewMode.Double);
+                        OpenFileInfo.LastViewMode = ViewMode.Double;
                     }
                     else
                     {
                         PDFViewer.ChangeViewMode(ViewMode.Book);
+                        OpenFileInfo.LastViewMode = ViewMode.Book;
                     }
                 }
             }
@@ -691,6 +698,11 @@ namespace PDF_Office.ViewModels
             var pdfview = navigationContext.Parameters[ParameterNames.PDFViewer] as CPDFViewer;
             if (pdfview != null)
             {
+                if (ViewContentViewModel.OpenFileInfo != null)
+                {
+                    OpenFileInfo = ViewContentViewModel.OpenFileInfo;
+                }
+
                 //获取页面设置等信息
                 PDFViewer = pdfview;
                 oldPageIndex = pdfview.CurrentIndex;
@@ -702,7 +714,6 @@ namespace PDF_Office.ViewModels
             }
         }
 
-
         public bool IsNavigationTarget(NavigationContext navigationContext)
         {
             return true;

+ 10 - 17
PDF Office/ViewModels/MainContentViewModel.cs

@@ -30,6 +30,7 @@ namespace PDF_Office.ViewModels
 {
     public class MainContentViewModel : BindableBase, INavigationAware
     {
+        //public bool
         private string fileName = "Home";
 
         public string FileName
@@ -57,7 +58,6 @@ namespace PDF_Office.ViewModels
                 {
                     FileName = System.IO.Path.GetFileName(filePath);
                 }
-
             }
         }
 
@@ -73,7 +73,6 @@ namespace PDF_Office.ViewModels
 
         public CPDFViewer PDFViewer { get; set; }
 
-
         public DelegateCommand<object> CloseTab { get; set; }
 
         public DelegateCommand<object> Loaded { get; set; }
@@ -88,7 +87,6 @@ namespace PDF_Office.ViewModels
 
         public HomeContentViewModel homeContentViewModel { get; set; }
 
-
         private string regionName;
 
         public string MainContentRegionName
@@ -98,6 +96,7 @@ namespace PDF_Office.ViewModels
         }
 
         private bool isReNameEnable = false;
+
         /// <summary>
         /// 是否能够重命名
         /// </summary>
@@ -111,6 +110,7 @@ namespace PDF_Office.ViewModels
         }
 
         private bool isShowInFolderEnable = false;
+
         /// <summary>
         /// 是否能够显示文件浏览器
         /// </summary>
@@ -181,7 +181,6 @@ namespace PDF_Office.ViewModels
             {
                 CommonHelper.ShowFileBrowser(PDFViewer.Document.FilePath);
             }
-
         }
 
         private void CloseTabItem(object item)
@@ -197,7 +196,6 @@ namespace PDF_Office.ViewModels
             }
         }
 
-
         /// <summary>
         /// 打开指定路径的PDF文件
         /// </summary>
@@ -222,7 +220,6 @@ namespace PDF_Office.ViewModels
                 {
                     App.OpenedFileList.Add(filePath);
                 }
-
             }
             //打开文件后,不管是新文件还是旧文件都需要更新排序
             SettingHelper.SortRecentOpenFiles(filePath);
@@ -276,7 +273,7 @@ namespace PDF_Office.ViewModels
                     ///TODO:
                     ///此处填入需要执行的代码
                 }
-                 
+
                 if (result.IsDiscryptied == false)
                 {
                     //未成功解密文档时,释放Document对象,返回
@@ -285,7 +282,6 @@ namespace PDF_Office.ViewModels
                 }
             }
 
-
             PDFViewer.Load();
 
             if (App.mainWindowViewModel != null)
@@ -426,6 +422,7 @@ namespace PDF_Office.ViewModels
                             }
                         });
                         break;
+
                     case ".xls":
                     case ".xlsx":
                     case ".xlsm":
@@ -448,12 +445,12 @@ namespace PDF_Office.ViewModels
                                 workbook = excele.Workbooks.Open(sourcepath, 0, true, 5, "", "", true, Microsoft.Office.Interop.Excel.XlPlatform.xlWindows, "t", false, false, 0, true, 1, Microsoft.Office.Interop.Excel.XlCorruptLoad.xlRepairFile);
                             }
 
-
                             workbook?.ExportAsFixedFormat(Microsoft.Office.Interop.Excel.XlFixedFormatType.xlTypePDF, targetPath);
                             workbook?.Close();
                             excele?.Quit();
                         });
                         break;
+
                     case ".ppt":
                     case ".pptx":
                     case ".pptm":
@@ -534,7 +531,6 @@ namespace PDF_Office.ViewModels
                     str += "Excel;";
                 }
 
-
                 AlertsMessage alertsMessage = new AlertsMessage();
                 if (str != "没有安装")
                 {
@@ -569,6 +565,7 @@ namespace PDF_Office.ViewModels
         }
 
         #region Navigation
+
         public async void OnNavigatedTo(NavigationContext navigationContext)
         {
             mainWindowViewModel = App.mainWindowViewModel;
@@ -602,7 +599,6 @@ namespace PDF_Office.ViewModels
                 else
                 {
                     result = await CreateFileFromOffice(filepath);
-
                 }
 
                 if (!result)
@@ -614,10 +610,6 @@ namespace PDF_Office.ViewModels
                 //更新已打开的文件记录
                 App.OpenedFileList.Add(filepath);
             }
-
-
-
-
         }
 
         public bool IsNavigationTarget(NavigationContext navigationContext)
@@ -628,6 +620,7 @@ namespace PDF_Office.ViewModels
         public void OnNavigatedFrom(NavigationContext navigationContext)
         {
         }
-        #endregion
+
+        #endregion Navigation
     }
-}
+}

+ 25 - 49
PDF Office/ViewModels/MainWindowViewModel.cs

@@ -21,6 +21,8 @@ using Prism.Ioc;
 using PDF_Office.CustomControl;
 using Prism.Services.Dialogs;
 using PDF_Office.Properties;
+using PDF_Office.Helper;
+using PDFSettings.Settings;
 
 namespace PDF_Office.ViewModels
 {
@@ -31,12 +33,13 @@ namespace PDF_Office.ViewModels
         public MainContent SelectedItem
         {
             get { return selectedItem; }
-            set {
+            set
+            {
                 SetProperty(ref selectedItem, value);
-                if (SelectedItem!=null)
+                if (SelectedItem != null)
                 {
                     var pdfviewer = (SelectedItem.DataContext as MainContentViewModel).PDFViewer;
-                    if(pdfviewer!=null)
+                    if (pdfviewer != null)
                     {
                         CurrentPDFViewer = pdfviewer;
                     }
@@ -48,8 +51,8 @@ namespace PDF_Office.ViewModels
             }
         }
 
-
         private string progresstitle;
+
         /// <summary>
         /// 进度控件标题
         /// </summary>
@@ -62,9 +65,8 @@ namespace PDF_Office.ViewModels
             }
         }
 
-      
-
         private double processvalue = 0;
+
         /// <summary>
         /// 进度条当前值
         /// </summary>
@@ -78,6 +80,7 @@ namespace PDF_Office.ViewModels
         }
 
         private double maxValue = 100;
+
         /// <summary>
         /// 进度条最大值
         /// </summary>
@@ -90,9 +93,9 @@ namespace PDF_Office.ViewModels
             }
         }
 
-
         private Visibility _RegisterVis = Visibility.Collapsed;
-        public  Visibility RegisterVis
+
+        public Visibility RegisterVis
         {
             get { return _RegisterVis; }
             set
@@ -102,6 +105,7 @@ namespace PDF_Office.ViewModels
         }
 
         private Visibility _LoginVis = Visibility.Collapsed;
+
         public Visibility LoginVis
         {
             get { return _LoginVis; }
@@ -111,9 +115,8 @@ namespace PDF_Office.ViewModels
             }
         }
 
-
-
         private Visibility _UserVis = Visibility.Collapsed;
+
         public Visibility UserVis
         {
             get { return _UserVis; }
@@ -123,10 +126,8 @@ namespace PDF_Office.ViewModels
             }
         }
 
-
-
-
         private Visibility isProcessVisible = Visibility.Collapsed;
+
         /// <summary>
         /// OCR进度条是否显示
         /// </summary>
@@ -157,10 +158,6 @@ namespace PDF_Office.ViewModels
 
         public DelegateCommand CloseAllTabCommand { get; set; }
 
-
-
-
-
         private CPDFViewer pdfViewer;
 
         /// <summary>
@@ -178,12 +175,12 @@ namespace PDF_Office.ViewModels
         /// 关闭OCR进度条
         /// </summary>
         public DelegateCommand CloseOCRCommand { get; set; }
+
         public DelegateCommand OpenRegisterCommand { get; set; }
         public DelegateCommand OpenLoginCommand { get; set; }
         public DelegateCommand OpenUserCommand { get; set; }
         public DelegateCommand LoadCommand { get; set; }
 
-
         public IRegionManager region;
 
         public IEventAggregator eventer;
@@ -191,11 +188,9 @@ namespace PDF_Office.ViewModels
         public IDialogService dialogs;
 
         private IContainerProvider containerProvider;
-       
 
         public IInterTabClient InterTabClient { get; }
 
-
         public MainWindowViewModel(IRegionManager regionManager, IEventAggregator eventAggregator, IContainerProvider container, IDialogService dialogService)
         {
             if (App.mainWindowViewModel == null)
@@ -218,11 +213,7 @@ namespace PDF_Office.ViewModels
             OpenRegisterCommand = new DelegateCommand(OpenRegister);
             OpenLoginCommand = new DelegateCommand(OpenLogin);
             OpenUserCommand = new DelegateCommand(OpenUser);
-            CloseAllTabCommand = new DelegateCommand(()=> { closeAllTabItem(); });
-            
-
-
-
+            CloseAllTabCommand = new DelegateCommand(() => { closeAllTabItem(); });
 
             //第一次打开时需要自动加载Home页
             if (App.IsFirstOpen)
@@ -242,33 +233,22 @@ namespace PDF_Office.ViewModels
                 {
                     RegisterVis = Visibility.Visible;
                 }
-
-              
             }
-
         }
 
         //打开注册弹窗
         private void OpenRegister()
         {
-          
             dialogs.ShowDialog(DialogNames.RegisterDialog, new DialogParameters(), r =>
             {
-
-               
-
             });
         }
 
-
-
         //打开登录弹窗
         private void OpenLogin()
         {
             dialogs.ShowDialog(DialogNames.LoginDialog, new DialogParameters(""), r =>
             {
-               
-
             });
         }
 
@@ -277,15 +257,15 @@ namespace PDF_Office.ViewModels
         {
             dialogs.ShowDialog(DialogNames.UserDialog, new DialogParameters(""), r =>
             {
-              
             });
         }
+
         /// <summary>
         /// 关闭OCR
         /// </summary>
         private void closeocr()
         {
-            if(ProcessCloseAction!=null)
+            if (ProcessCloseAction != null)
             {
                 ProcessCloseAction.Invoke();
             }
@@ -314,7 +294,6 @@ namespace PDF_Office.ViewModels
             CheckViewsCount();
         }
 
-
         /// <summary>
         /// 关闭所有页签
         /// </summary>
@@ -322,7 +301,7 @@ namespace PDF_Office.ViewModels
         {
             while (region.Regions[RegionNames.MainRegion].Views.Count() > 0)
             {
-                if (CurrentPDFViewer!=null&&CurrentPDFViewer.UndoManager.CanSave)
+                if (CurrentPDFViewer != null && CurrentPDFViewer.UndoManager.CanSave)
                 {
                     ContentResult result = ShowSaveDialog((SelectedItem.DataContext as MainContentViewModel).viewContentViewModel);
                     if (result == ContentResult.Cancel)
@@ -336,7 +315,7 @@ namespace PDF_Office.ViewModels
                 }
 
                 //多窗体情况下,单个窗体的所有页签均已关闭时,返回true,允许关闭窗体
-                if(selectedItem==null)
+                if (selectedItem == null)
                 {
                     return true;
                 }
@@ -353,7 +332,7 @@ namespace PDF_Office.ViewModels
             {
                 SelectItem(maincontentViewModel.PDFViewer.Document.FilePath);
             }
-            if (maincontentViewModel.PDFViewer != null &&maincontentViewModel.PDFViewer.UndoManager.CanSave)
+            if (maincontentViewModel.PDFViewer != null && maincontentViewModel.PDFViewer.UndoManager.CanSave)
             {
                 ContentResult result = ShowSaveDialog(maincontentViewModel.viewContentViewModel);
                 if (result == ContentResult.Cancel)
@@ -365,7 +344,6 @@ namespace PDF_Office.ViewModels
                 {
                     maincontentViewModel.PDFViewer.CloseDocument();
                 }
-
             }
             if (region.Regions[RegionNames.MainRegion].Views.Count() > 1)
             {
@@ -374,7 +352,6 @@ namespace PDF_Office.ViewModels
             }
             else
             {
-           
                 if (maincontentViewModel.PDFViewer != null)
                 {
                     //如果是打开文档的页签 则回到首页
@@ -389,7 +366,6 @@ namespace PDF_Office.ViewModels
                 }
             }
             return;
-
         }
 
         /// <summary>
@@ -397,7 +373,7 @@ namespace PDF_Office.ViewModels
         /// </summary>
         private void CheckViewsCount()
         {
-            if(region.Regions[RegionNames.MainRegion].Views.Count()>1)
+            if (region.Regions[RegionNames.MainRegion].Views.Count() > 1)
             {
                 IsCloseAllEnable = true;
             }
@@ -415,7 +391,7 @@ namespace PDF_Office.ViewModels
 
             region.Regions[RegionNames.MainRegion].Activate(item);
             var behavior = region.Regions[RegionNames.MainRegion].Behaviors[DragablzWindowBehavior.BehaviorKey] as DragablzWindowBehavior;
-            if(behavior!=null)
+            if (behavior != null)
             {
                 behavior.ActivateView(item);
             }
@@ -429,7 +405,7 @@ namespace PDF_Office.ViewModels
         private ContentResult ShowSaveDialog(ViewContentViewModel viewContentViewModel)
         {
             AlertsMessage alertsMessage = new AlertsMessage();
-            alertsMessage.ShowDialog("关闭提示","当前文档有为保存的操作,是否需要保存?","Cancel","No","Ok");
+            alertsMessage.ShowDialog("关闭提示", "当前文档有为保存的操作,是否需要保存?", "Cancel", "No", "Ok");
             var result = alertsMessage.result;
 
             if (result == ContentResult.Ok)
@@ -441,4 +417,4 @@ namespace PDF_Office.ViewModels
             return result;
         }
     }
-}
+}

+ 43 - 13
PDF Office/ViewModels/ViewContentViewModel.cs

@@ -32,6 +32,7 @@ namespace PDF_Office.ViewModels
     {
         #region 属性、变量
 
+        public OpenFileInfo OpenFileInfo = null;
         public CPDFViewer PDFViewer { get; set; }
 
         public MainContentViewModel mainViewModel { get; set; }
@@ -607,7 +608,7 @@ namespace PDF_Office.ViewModels
         /// <param name="obj"></param>
         private void convert(string obj)
         {
-           if(!string.IsNullOrEmpty(obj))
+            if (!string.IsNullOrEmpty(obj))
             {
                 DialogParameters value = new DialogParameters();
                 value.Add(ParameterNames.PDFViewer, PDFViewer);
@@ -620,52 +621,65 @@ namespace PDF_Office.ViewModels
                             converterDialogsModel.OnOpened((DialogResult)e);
                         });
                         break;
+
                     case "Excel":
-                        dialogs.ShowDialog(DialogNames.ConverterExcelDialog, value, e => {
+                        dialogs.ShowDialog(DialogNames.ConverterExcelDialog, value, e =>
+                        {
                             ConverterDialogsModel converterDialogsModel = new ConverterDialogsModel();
                             converterDialogsModel.OnOpened((DialogResult)e);
                         });
                         break;
+
                     case "PPT":
-                        dialogs.ShowDialog(DialogNames.ConverterPPTDialog, value, e => {
+                        dialogs.ShowDialog(DialogNames.ConverterPPTDialog, value, e =>
+                        {
                             ConverterDialogsModel converterDialogsModel = new ConverterDialogsModel();
                             converterDialogsModel.OnOpened((DialogResult)e);
                         });
                         break;
+
                     case "RTF":
-                        dialogs.ShowDialog(DialogNames.ConverterRTFDialog, value, e => {
+                        dialogs.ShowDialog(DialogNames.ConverterRTFDialog, value, e =>
+                        {
                             ConverterDialogsModel converterDialogsModel = new ConverterDialogsModel();
                             converterDialogsModel.OnOpened((DialogResult)e);
                         });
                         break;
+
                     case "CSV":
-                        dialogs.ShowDialog(DialogNames.ConverterCSVDialog, value, e => {
+                        dialogs.ShowDialog(DialogNames.ConverterCSVDialog, value, e =>
+                        {
                             ConverterDialogsModel converterDialogsModel = new ConverterDialogsModel();
                             converterDialogsModel.OnOpened((DialogResult)e);
                         });
                         break;
+
                     case "HTML":
-                        dialogs.ShowDialog(DialogNames.ConverterHTMLDialog, value, e => {
+                        dialogs.ShowDialog(DialogNames.ConverterHTMLDialog, value, e =>
+                        {
                             ConverterDialogsModel converterDialogsModel = new ConverterDialogsModel();
                             converterDialogsModel.OnOpened((DialogResult)e);
                         });
                         break;
+
                     case "Text":
-                        dialogs.ShowDialog(DialogNames.ConverterTextDialog, value, e => {
+                        dialogs.ShowDialog(DialogNames.ConverterTextDialog, value, e =>
+                        {
                             ConverterDialogsModel converterDialogsModel = new ConverterDialogsModel();
                             converterDialogsModel.OnOpened((DialogResult)e);
                         });
                         break;
+
                     case "Image":
-                        dialogs.ShowDialog(DialogNames.ConverterImgDialog, value, e => {
+                        dialogs.ShowDialog(DialogNames.ConverterImgDialog, value, e =>
+                        {
                             ConverterDialogsModel converterDialogsModel = new ConverterDialogsModel();
                             converterDialogsModel.OnOpened((DialogResult)e);
                         });
                         break;
+
                     default:
                         break;
-
-
                 }
             }
         }
@@ -1137,8 +1151,8 @@ namespace PDF_Office.ViewModels
             }
 
             IsLoading = Visibility.Collapsed;
-            //ReadModelTip = Visibility.Visible;
-            ShowTip(true);
+           
+                ShowTip(true);
             await Task.Delay(3000);
             //ReadModelTip = Visibility.Collapsed;
             TipVisible = Visibility.Collapsed;
@@ -1278,6 +1292,15 @@ namespace PDF_Office.ViewModels
             EnterSelectedBar("TabItemAnnotation");
             //}
             //));
+
+            //if (App.IsBookMode)
+            //{
+            //    RbtnReadMode();
+            //}
+            //else
+            //{
+            //    UnReadModel();
+            //}
         }
 
         /// <summary>
@@ -1306,6 +1329,13 @@ namespace PDF_Office.ViewModels
             CanUndo = PDFViewer.UndoManager.CanUndo;
             CanRedo = PDFViewer.UndoManager.CanRedo;
             region.Regions[ViwerRegionName].RemoveAll();
+
+            //OpenFileInfo 内容赋值给PDFViewer
+            OpenFileInfo = SettingHelper.GetFileInfo(PDFViewer.Document.FilePath);
+            if (OpenFileInfo != null)
+            {
+                PDFViewer.ChangeViewMode(OpenFileInfo.LastViewMode);
+            }
             region.AddToRegion(ViwerRegionName, PDFViewer);
         }
 
@@ -1328,7 +1358,7 @@ namespace PDF_Office.ViewModels
                         return saveAsFile();
                     else
                         return false;
-                } 
+                }
 
                 //文件路径无法存在时
                 if (!File.Exists(PDFViewer.Document.FilePath))