Prechádzať zdrojové kódy

快捷键-补充底部工具栏部分快捷键

ZhouJieSheng 1 rok pred
rodič
commit
661e502116

+ 36 - 0
PDF Office/Helper/GlobalCommands.cs

@@ -27,5 +27,41 @@ namespace PDF_Master.Helper
         public static CompositeCommand UpCommand = new CompositeCommand();
 
         public static CompositeCommand DownCommand = new CompositeCommand();
+
+        /// <summary>
+        /// 单页模式  Ctrl+1
+        /// </summary>
+        public static CompositeCommand SinglePageCommand = new CompositeCommand();
+
+        /// <summary>
+        /// 双页模式 Ctrl+2
+        /// </summary>
+        public static CompositeCommand DoublePageCommand = new CompositeCommand();
+
+        /// <summary>
+        /// 全屏 F11
+        /// </summary>
+        public static CompositeCommand FullWindowCommand = new CompositeCommand();
+
+        /// <summary>
+        /// 书签快捷键 ctrl+B
+        /// </summary>
+        public static CompositeCommand BookMarkCommand = new CompositeCommand();
+
+        /// <summary>
+        /// 放大快捷键 ctrl  +
+        /// </summary>
+        public static CompositeCommand ZoomInCommand = new CompositeCommand();
+
+        /// <summary>
+        /// 缩小快捷键 ctrl -
+        /// </summary>
+        public static CompositeCommand ZoomOutPageCommand = new CompositeCommand();
+
+        /// <summary>
+        /// 回到实际大小 ctrl+0
+        /// </summary>
+        public static CompositeCommand RealSizeCommand = new CompositeCommand();
+
     }
 }

+ 29 - 12
PDF Office/ViewModels/BottomToolContentViewModel.cs

@@ -329,20 +329,21 @@ namespace PDF_Master.ViewModels
 
             DownCommand = new DelegateCommand(down);
 
-            //注册成全局命令
-            GlobalCommands.FirstPageCommand.RegisterCommand(FirstPageCommand);
-            GlobalCommands.LastPageCommand.RegisterCommand(LastPageCommand);
-            GlobalCommands.NextPageCommand.RegisterCommand(NextPageCommand);
-            GlobalCommands.PrePageCommand.RegisterCommand(PrePageCommand);
-            GlobalCommands.PreViewCommand.RegisterCommand(PreViewCommand);
-            GlobalCommands.NextViewCommand.RegisterCommand(NextViewCommnad);
-            GlobalCommands.UpCommand.RegisterCommand(UpCommand);
-            GlobalCommands.DownCommand.RegisterCommand(DownCommand);
-
-
             InitString();
         }
 
+        /// <summary>
+        /// 缩放至实际大小
+        /// </summary>
+        private void ZoomToRealSize()
+        {
+            PDFViewer?.ChangeFitMode(FitMode.FitSize);
+            if (OpenFileInfo != null)
+            {
+                OpenFileInfo.LastFitMode = FitMode.FitSize;
+            }
+        }
+
         private void previewkeydown(object e)
         {
             var args = e as KeyEventArgs;
@@ -938,8 +939,24 @@ namespace PDF_Master.ViewModels
                     CurrentPage = PDFViewer.CurrentIndex + 1;
                 }
                 CurrentZoom = PDFViewer.ZoomFactor * 100;
-                PDFViewer.InfoChanged += PDFViewer_InfoChanged;
+                PDFViewer.InfoChanged += PDFViewer_InfoChanged;
+
+                //注册成全局命令
+                GlobalCommands.FirstPageCommand.RegisterCommand(FirstPageCommand);
+                GlobalCommands.LastPageCommand.RegisterCommand(LastPageCommand);
+                GlobalCommands.NextPageCommand.RegisterCommand(NextPageCommand);
+                GlobalCommands.PrePageCommand.RegisterCommand(PrePageCommand);
+                GlobalCommands.PreViewCommand.RegisterCommand(PreViewCommand);
+                GlobalCommands.NextViewCommand.RegisterCommand(NextViewCommnad);
+                GlobalCommands.UpCommand.RegisterCommand(UpCommand);
+                GlobalCommands.DownCommand.RegisterCommand(DownCommand);
+                GlobalCommands.SinglePageCommand.RegisterCommand(new DelegateCommand(() => { IsSingleView = true; }));
+                GlobalCommands.DoublePageCommand.RegisterCommand(new DelegateCommand(() => { IsDoubleView = true; }));
+                GlobalCommands.ZoomInCommand.RegisterCommand(ZoomInCommand);
+                GlobalCommands.ZoomOutPageCommand.RegisterCommand(ZoomOutCommand);
+                GlobalCommands.RealSizeCommand.RegisterCommand(new DelegateCommand(() => { ZoomToRealSize(); }));
             }
+
         }
 
         public bool IsNavigationTarget(NavigationContext navigationContext)

+ 23 - 0
PDF Office/ViewModels/ViewContentViewModel.cs

@@ -851,6 +851,27 @@ namespace PDF_Master.ViewModels
             StartAutoSave();
         }
 
+        /// <summary>
+        /// 进入全屏模式
+        /// </summary>
+        private void OpenFullWindow()
+        {
+            DialogParameters parameters = new DialogParameters();
+            //因为全屏模式可能需要设置特定的页面模式,所以只传文件路径,新建一个PDFview对象
+            parameters.Add(ParameterNames.FilePath, PDFViewer.Document.FilePath);
+            parameters.Add(ParameterNames.PassWord, PDFViewer.Tag == null ? "" : PDFViewer.Tag.ToString());
+            dialogs.ShowDialog(DialogNames.FullScreenDialog, parameters, e =>
+            {
+                if (e.Result == ButtonResult.Cancel)
+                {
+                    //TODO:弹窗提示打开全屏模式失败
+                    AlertsMessage alertsMessage = new AlertsMessage();
+                    alertsMessage.ShowDialog("", "Error", "OK");
+                    return;
+                }
+            });
+        }
+
         /// <summary>
         /// 点击展开折叠属性面板
         /// </summary>
@@ -2801,6 +2822,8 @@ namespace PDF_Master.ViewModels
                 Settings.Default.Save();
             }
 
+            //需要在pdfview赋值后绑定
+            GlobalCommands.FullWindowCommand.RegisterCommand(new DelegateCommand(() => { OpenFullWindow(); }));
         }
 
         public bool IsNavigationTarget(NavigationContext navigationContext)

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

@@ -100,6 +100,47 @@
         <KeyBinding Key="PageUp" Command="{x:Static helper:GlobalCommands.PrePageCommand}" />
         <KeyBinding Key="PageDown" Command="{x:Static helper:GlobalCommands.NextPageCommand}" />
         <KeyBinding Key="Right" Command="{x:Static helper:GlobalCommands.NextPageCommand}" />
+        <KeyBinding
+            Key="B"
+            Command="{x:Static helper:GlobalCommands.BookMarkCommand}"
+            Modifiers="Ctrl" />
+        <KeyBinding Key="F11" Command="{x:Static helper:GlobalCommands.FullWindowCommand}" />
+        <KeyBinding
+            Key="NumPad1"
+            Command="{x:Static helper:GlobalCommands.SinglePageCommand}"
+            Modifiers="Ctrl" />
+        <KeyBinding
+            Key="D1"
+            Command="{x:Static helper:GlobalCommands.SinglePageCommand}"
+            Modifiers="Ctrl" />
+        <KeyBinding
+            Key="NumPad2"
+            Command="{x:Static helper:GlobalCommands.DoublePageCommand}"
+            Modifiers="Ctrl" />
+        <KeyBinding
+            Key="D2"
+            Command="{x:Static helper:GlobalCommands.DoublePageCommand}"
+            Modifiers="Ctrl" />
+        <KeyBinding
+            Key="O"
+            Command="{x:Static helper:GlobalCommands.RealSizeCommand}"
+            Modifiers="Ctrl" />
+        <KeyBinding
+            Key="Add"
+            Command="{x:Static helper:GlobalCommands.ZoomInCommand}"
+            Modifiers="Ctrl" />
+        <KeyBinding
+            Key="OemPlus"
+            Command="{x:Static helper:GlobalCommands.ZoomInCommand}"
+            Modifiers="Ctrl" />
+        <KeyBinding
+            Key="Subtract"
+            Command="{x:Static helper:GlobalCommands.ZoomOutPageCommand}"
+            Modifiers="Ctrl" />
+        <KeyBinding
+            Key="OemMinus"
+            Command="{x:Static helper:GlobalCommands.ZoomOutPageCommand}"
+            Modifiers="Ctrl" />
 
         <KeyBinding
             Key="OemOpenBrackets"

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

@@ -415,7 +415,7 @@ namespace PDF_Master.Views
 
         private void CloseLeftCommand_Executed(object sender, ExecutedRoutedEventArgs e)
         {
-            BOTASplitter.Visibility = Visibility.Collapsed;
+            viewModel.OpenBOTA = false;
         }
 
         private void CloseRightCommand_Executed(object sender, ExecutedRoutedEventArgs e)