Explorar o código

Merge branch 'dev' of http://git.kdan.cc:8865/Windows/PDFOffice_Windows_exe into dev

ZhouJieSheng %!s(int64=2) %!d(string=hai) anos
pai
achega
e3ae9df315

+ 3 - 3
PDF Office/Styles/ContextMenuStyle.xaml

@@ -81,7 +81,7 @@
         <MenuItem
             Name="BtnSnapCopy"
             Header="{x:Static mainpage:MainPage.ContentSelection_Copy}"
-            IsEnabled="True">
+            IsEnabled="True" InputGestureText="Ctrl+C">
             <!--<MenuItem.Icon>
             <Path Data="M5.24031 1.5H0.5V14.5H15.5V4H7.24031L5.24031 1.5ZM1.5 13.5V2.5H4.75969L6.75969 5H14.5V13.5H1.5ZM4 7.5H12V6.5H4V7.5Z" Fill="Black">
             <Path.RenderTransform>
@@ -136,7 +136,7 @@
         <MenuItem
             Name="BtnSnapPrint"
             Header="{x:Static mainpage:MainPage.ContentSelection_Print}"
-            IsEnabled="True">
+            IsEnabled="True" InputGestureText="Ctrl+P">
             <!--<MenuItem.Icon>
             <Path Data="M5.24031 1.5H0.5V14.5H15.5V4H7.24031L5.24031 1.5ZM1.5 13.5V2.5H4.75969L6.75969 5H14.5V13.5H1.5ZM4 7.5H12V6.5H4V7.5Z" Fill="Black">
             <Path.RenderTransform>
@@ -167,7 +167,7 @@
     <!--  阅读页点击空白处菜单  -->
     <ContextMenu x:Key="ViewerContextMenu" FontSize="14">
         <MenuItem
-            Header="{x:Static mainpage:MainPage.ViewRightMenu_Copy}"
+            Header="{x:Static mainpage:MainPage.ViewRightMenu_Paste}"
             InputGestureText="Ctrl+V"
             Tag="Paste" />
         <Separator

+ 23 - 1
PDF Office/ViewModels/Dialog/HomePageToolsDialogs/HomePagePrinter/HomePagePrinterDialogViewModel.cs

@@ -34,6 +34,7 @@ using System.Collections.ObjectModel;
 using System.Windows.Forms;
 using ComboBox = System.Windows.Controls.ComboBox;
 using CheckBox = System.Windows.Controls.CheckBox;
+using static PDF_Office.Model.Dialog.ToolsDialogs.SaftyDialogs.DeleteSafetySettintgsModel;
 
 namespace PDF_Office.ViewModels.Dialog.HomePageToolsDialogs.HomePagePrinter
 {
@@ -1006,8 +1007,29 @@ namespace PDF_Office.ViewModels.Dialog.HomePageToolsDialogs.HomePagePrinter
 
         public void OnDialogOpened(IDialogParameters parameters)
         {
-
+             
             parameters.TryGetValue<CPDFViewer>(ParameterNames.PDFViewer, out PDFViewer);
+
+            VerifyPasswordResult result = SecurityHelper.VerifyPasswordForSelectedPermissions(PDFViewer.Document, Model.Dialog.ToolsDialogs.SaftyDialogs.EnumPermissionsSet.StatusAllowsPrinting, printDialogs);
+            if (result.IsDiscryptied)
+            {
+                string filePath = PDFViewer.Document.FilePath;
+                PDFViewer.CloseDocument();
+                PDFViewer.InitDocument(filePath);
+                PDFViewer.Document.UnlockWithPassword(result.Password);
+                PDFViewer.Load();
+                ///TODO:
+                ///此处填入需要执行的代码
+            }
+            if (!result.IsDiscryptied)
+            {
+                System.Windows.Application.Current.Dispatcher.BeginInvoke(System.Windows.Threading.DispatcherPriority.Send, new Action(() =>
+                {
+                    this.RequestClose(new Prism.Services.Dialogs.DialogResult());
+                }));
+            }
+
+
             if (PDFViewer != null && PDFViewer.Document != null)
             {
                 for (int temp = 0; temp < PDFViewer.Document.PageCount; temp++)

+ 2 - 1
PDF Office/ViewModels/TipContent/FileRestrictedTipViewModel.cs

@@ -42,9 +42,10 @@ namespace PDF_Office.ViewModels.TipContent
                 if (result.Password != null)
                 {
                     string filePath = PDFViewer.Document.FilePath;
-                    PDFViewer.Document.Release();
+                    PDFViewer.CloseDocument();
                     PDFViewer.InitDocument(filePath);
                     PDFViewer.Document.UnlockWithPassword(result.Password);
+                    PDFViewer.Load();
                 }
                 ///TODO:
                 ///此处填入需要执行的代码

+ 2 - 1
PDF Office/ViewModels/Tools/AnnotToolContentViewModel.Command.cs

@@ -683,6 +683,7 @@ namespace PDF_Office.ViewModels.Tools
                     menuItem = popMenu.Items[4] as MenuItem;
                     menuItem.CommandTarget = PDFViewer;
                     menuItem.Command = SnapshotEditMenuViewModel.PrintCommand;
+
                 }
             }
         }
@@ -839,7 +840,7 @@ namespace PDF_Office.ViewModels.Tools
                 hoverPen.DashStyle = DashStyles.Dash;
                 e.DrawContext?.DrawRectangle(null, hoverPen, hoverRect);
 
-                
+
                 //便签,显示ToolTip内容
                 if (e.Annot != null && e.Annot.Type == C_ANNOTATION_TYPE.C_ANNOTATION_TEXT)
                 {

+ 11 - 6
PDF Office/ViewModels/Tools/AnnotToolContentViewModel.Function.cs

@@ -1085,14 +1085,19 @@ namespace PDF_Office.ViewModels.Tools
                         //stickyAnnotArgs.ClientRect = new Rect(textSelectNodes[0].StartPoint.X, annotCommand.TextRect.Y - annotCommand.TextRect.Height, annotCommand.TextRect.Width, annotCommand.TextRect.Height);
                         Rect rect = annotCommand.TextRectList[0];
 
-                        int dpi = DpiHelpers.Dpi;
-                        double x = rect.X / 72D * dpi;
-                        double y = (rect.Y - rect.Height) / 72D * dpi;
-                        double width = rect.Width / 72D * dpi;
-                        double height = rect.Height / 72D * dpi;
+                        #region to do 转dpi
 
-                        stickyAnnotArgs.ClientRect = new Rect(x, y, width, height);
+                        //int dpi = DpiHelpers.Dpi;
+                        //double x = rect.X / 72D * dpi;
+                        //double y = (rect.Y - rect.Height) / 72D * dpi;
+                        //double width = rect.Width / 72D * dpi;
+                        //double height = rect.Height / 72D * dpi;
+
+                        #endregion to do 转dpi
+
+                        //stickyAnnotArgs.ClientRect = new Rect(x, y, width, height);
                         //stickyAnnotArgs.ClientRect = new Rect(rect.X, rect.Y - rect.Height, rect.Width, rect.Height);
+                        stickyAnnotArgs.ClientRect = rect;
                         //PDFViewer.CreatePageAnnot(annotCommand.PageIndex, stickyAnnotArgs);
                         NavigationParameters param = new NavigationParameters();
                         param.Add(ParameterNames.PDFViewer, PDFViewer);

+ 39 - 20
PDF Office/ViewModels/ViewContentViewModel.cs

@@ -1599,20 +1599,15 @@ namespace PDF_Office.ViewModels
                 //内容选择 退出
                 if (PDFViewer.MouseMode != MouseModes.PanTool)
                 {
-                    if (region.Regions.ContainsRegionWithName(ToolsBarContentRegionName))
+                    AnnotToolContent annotToolContent = GetAnnotToolContent(out AnnotToolContentViewModel toolContentViewModel);
+                    if (annotToolContent != null && toolContentViewModel != null)
                     {
-                        var views = region.Regions[ToolsBarContentRegionName].Views;
-                        var model = views.FirstOrDefault(q => q is AnnotToolContent);
-                        if (model is AnnotToolContent annotToolContent)
+                        if (annotToolContent.BtnSelecttool.IsChecked == true)
                         {
-                            AnnotToolContentViewModel toolContentViewModel = annotToolContent.DataContext as AnnotToolContentViewModel;
-                            if (annotToolContent.BtnSelecttool.IsChecked == true)
+                            if (toolContentViewModel.SnapshotEditMenuViewModel.SnapToolArgs != null)
                             {
-                                if (toolContentViewModel.SnapshotEditMenuViewModel.SnapToolArgs != null)
-                                {
-                                    toolContentViewModel.SnapshotEditMenuViewModel.SnapToolArgs.ReSnapshot();
-                                    annotToolContent.BtnSelecttool.IsChecked = false;
-                                }
+                                toolContentViewModel.SnapshotEditMenuViewModel.SnapToolArgs.ReSnapshot();
+                                annotToolContent.BtnSelecttool.IsChecked = false;
                             }
                         }
                     }
@@ -1620,20 +1615,44 @@ namespace PDF_Office.ViewModels
             }
             if (KeyEventsHelper.IsModifierKey(ModifierKeys.Control, Key.C))
             {
-                if (region.Regions.ContainsRegionWithName(ToolsBarContentRegionName))
+                //内容选择 复制 快捷键
+                AnnotToolContent annotToolContent = GetAnnotToolContent(out AnnotToolContentViewModel toolContentViewModel);
+                if (annotToolContent != null && toolContentViewModel != null)
                 {
-                    var views = region.Regions[ToolsBarContentRegionName].Views;
-                    var model = views.FirstOrDefault(q => q is AnnotToolContent);
-                    if (model is AnnotToolContent annotToolContent)
+                    if (annotToolContent.BtnSelecttool.IsChecked == true)
                     {
-                        AnnotToolContentViewModel toolContentViewModel = annotToolContent.DataContext as AnnotToolContentViewModel;
-                        if (annotToolContent.BtnSelecttool.IsChecked == true)
-                        {
-                            toolContentViewModel.SnapshotEditMenuViewModel.SnapCopyCommand.Execute();
-                        }
+                        toolContentViewModel.SnapshotEditMenuViewModel.SnapCopyCommand.Execute();
                     }
                 }
             }
+            if (KeyEventsHelper.IsModifierKey(ModifierKeys.Control, Key.P))
+            {
+                AnnotToolContent annotToolContent = GetAnnotToolContent(out AnnotToolContentViewModel toolContentViewModel);
+                if (annotToolContent != null && toolContentViewModel != null)
+                {
+                    if (annotToolContent.BtnSelecttool.IsChecked == true)
+                    {
+                        toolContentViewModel.SnapshotEditMenuViewModel.PrintCommand.Execute();
+                    }
+                }
+            }
+        }
+
+        private AnnotToolContent GetAnnotToolContent(out AnnotToolContentViewModel toolContentViewModel)
+        {
+            AnnotToolContent toolContent = null;
+            toolContentViewModel = null;
+            if (region.Regions.ContainsRegionWithName(ToolsBarContentRegionName))
+            {
+                var views = region.Regions[ToolsBarContentRegionName].Views;
+                var model = views.FirstOrDefault(q => q is AnnotToolContent);
+                if (model is AnnotToolContent annotToolContent)
+                {
+                    toolContent = annotToolContent;
+                    toolContentViewModel = annotToolContent.DataContext as AnnotToolContentViewModel;
+                }
+            }
+            return toolContent;
         }
 
         /// <summary>

+ 77 - 46
PDF Office/Views/MainWindow.xaml

@@ -22,8 +22,8 @@
     BorderThickness="2"
     Closed="Window_Closed"
     Closing="Window_Closing"
-    SizeChanged="Window_SizeChanged"
     PreviewMouseLeftButtonDown="Window_PreviewMouseLeftButtonDown"
+    SizeChanged="Window_SizeChanged"
     Style="{StaticResource WindowStyle}"
     UseLayoutRounding="True"
     WindowStartupLocation="CenterScreen"
@@ -233,7 +233,8 @@
             HorizontalAlignment="Right"
             Orientation="Horizontal"
             WindowChrome.IsHitTestVisibleInChrome="True">
-            <Grid Visibility="{Binding ElementName=Btn_Login,Path=Visibility}" >
+
+            <Grid Visibility="{Binding ElementName=Btn_Login, Path=Visibility}">
                 <Border VerticalAlignment="Center">
                     <Path Data="M0 4C0 1.79086 1.79086 0 4 0H132C134.209 0 136 1.79086 136 4V10.323C136 10.7319 136.249 11.0996 136.629 11.2514L141.179 13.0715C142.017 13.4068 142.017 14.5932 141.179 14.9285L136.629 16.7486C136.249 16.9004 136 17.2681 136 17.677V24C136 26.2091 134.209 28 132 28H4C1.79086 28 0 26.2091 0 24V4Z" Fill="#FFCF52" />
                 </Border>
@@ -253,21 +254,33 @@
                 Command="{Binding OpenRegisterCommand}"
                 Style="{StaticResource subToolBar}"
                 Visibility="{Binding RegisterVis, Mode=TwoWay}">
-                <Border
-                    Width="40"
-                    Height="40"
-                    Margin="-2,-2,0,0"
-                    Background="{StaticResource color.icon.base.neutral.norm.lv1}"
-                    BorderBrush="{StaticResource color.icon.base.neutral.norm.lv1}"
-                    BorderThickness="1"
-                    CornerRadius="100">
-                    <Path
-                        HorizontalAlignment="Center"
-                        VerticalAlignment="Center"
-                        Data="M12 13C14.2091 13 16 11.2091 16 9C16 6.79086 14.2091 5 12 5C9.79086 5 8 6.79086 8 9C8 11.2091 9.79086 13 12 13ZM12 31C17.5228 31 22 27.4183 22 23C22 18.5817 17.5228 15 12 15C6.47715 15 2 18.5817 2 23C2 27.4183 6.47715 31 12 31Z"
-                        Fill="White" />
-                </Border>
+                <Grid>
+                    <Border
+                        x:Name="myBorder1"
+                        Width="24"
+                        Height="24"
+                        Background="White"
+                        CornerRadius="12" />
+                    <Border
+                        Width="24"
+                        Height="24"
+                        Background="{StaticResource color.icon.base.neutral.norm.lv1}"
+                        BorderBrush="{StaticResource color.icon.base.neutral.norm.lv1}">
+                        <Path Data="M12 13C14.2091 13 16 11.2091 16 9C16 6.79086 14.2091 5 12 5C9.79086 5 8 6.79086 8 9C8 11.2091 9.79086 13 12 13ZM12 31C17.5228 31 22 27.4183 22 23C22 18.5817 17.5228 15 12 15C6.47715 15 2 18.5817 2 23C2 27.4183 6.47715 31 12 31Z" Fill="White" />
+                        <Border.OpacityMask>
+                            <VisualBrush Visual="{Binding ElementName=myBorder1}" />
+                        </Border.OpacityMask>
+                    </Border>
+                    <Border
+                        Width="24"
+                        Height="24"
+                        BorderBrush="{StaticResource color.icon.base.neutral.norm.lv1}"
+                        BorderThickness="2"
+                        CornerRadius="100" />
+                </Grid>
+
             </Button>
+
             <Button
                 x:Name="Btn_Login"
                 Width="40"
@@ -276,22 +289,30 @@
                 Command="{Binding OpenLoginCommand}"
                 Style="{StaticResource subToolBar}"
                 Visibility="{Binding LoginVis, Mode=TwoWay}">
-                <Border
-                    Width="40"
-                    Height="40"
-                    Margin="-2,-2,0,0"
-                    HorizontalAlignment="Center"
-                    VerticalAlignment="Center"
-                    Background="{StaticResource color.icon.base.neutral.norm.lv1}"
-                    BorderBrush="{StaticResource color.icon.base.neutral.norm.lv1}"
-                    BorderThickness="1"
-                    CornerRadius="100">
-                    <Path
-                        HorizontalAlignment="Center"
-                        VerticalAlignment="Center"
-                        Data="M12 13C14.2091 13 16 11.2091 16 9C16 6.79086 14.2091 5 12 5C9.79086 5 8 6.79086 8 9C8 11.2091 9.79086 13 12 13ZM12 31C17.5228 31 22 27.4183 22 23C22 18.5817 17.5228 15 12 15C6.47715 15 2 18.5817 2 23C2 27.4183 6.47715 31 12 31Z"
-                        Fill="White" />
-                </Border>
+                <Grid>
+                    <Border
+                        x:Name="myBorder2"
+                        Width="24"
+                        Height="24"
+                        Background="White"
+                        CornerRadius="12" />
+                    <Border
+                        Width="24"
+                        Height="24"
+                        Background="{StaticResource color.icon.base.neutral.norm.lv1}"
+                        BorderBrush="{StaticResource color.icon.base.neutral.norm.lv1}">
+                        <Path Data="M12 13C14.2091 13 16 11.2091 16 9C16 6.79086 14.2091 5 12 5C9.79086 5 8 6.79086 8 9C8 11.2091 9.79086 13 12 13ZM12 31C17.5228 31 22 27.4183 22 23C22 18.5817 17.5228 15 12 15C6.47715 15 2 18.5817 2 23C2 27.4183 6.47715 31 12 31Z" Fill="White" />
+                        <Border.OpacityMask>
+                            <VisualBrush Visual="{Binding ElementName=myBorder2}" />
+                        </Border.OpacityMask>
+                    </Border>
+                    <Border
+                        Width="24"
+                        Height="24"
+                        BorderBrush="{StaticResource color.icon.base.neutral.norm.lv1}"
+                        BorderThickness="2"
+                        CornerRadius="100" />
+                </Grid>
             </Button>
             <Button
                 x:Name="Btn_User"
@@ -301,20 +322,30 @@
                 Command="{Binding OpenUserCommand}"
                 Style="{StaticResource subToolBar}"
                 Visibility="{Binding UserVis, Mode=TwoWay}">
-                <Border
-                    Width="40"
-                    Height="40"
-                    Margin="-2,-2,0,0"
-                    Background="#1770F4"
-                    BorderBrush="{StaticResource color.icon.base.neutral.norm.lv1}"
-                    BorderThickness="1"
-                    CornerRadius="100">
-                    <Path
-                        HorizontalAlignment="Center"
-                        VerticalAlignment="Center"
-                        Data="M12 13C14.2091 13 16 11.2091 16 9C16 6.79086 14.2091 5 12 5C9.79086 5 8 6.79086 8 9C8 11.2091 9.79086 13 12 13ZM12 31C17.5228 31 22 27.4183 22 23C22 18.5817 17.5228 15 12 15C6.47715 15 2 18.5817 2 23C2 27.4183 6.47715 31 12 31Z"
-                        Fill="White" />
-                </Border>
+                <Grid>
+                    <Border
+                        x:Name="myBorder3"
+                        Width="24"
+                        Height="24"
+                        Background="White"
+                        CornerRadius="12" />
+                    <Border
+                        Width="24"
+                        Height="24"
+                        Background="#1770F4"
+                        BorderBrush="{StaticResource color.icon.base.neutral.norm.lv1}">
+                        <Path Data="M12 13C14.2091 13 16 11.2091 16 9C16 6.79086 14.2091 5 12 5C9.79086 5 8 6.79086 8 9C8 11.2091 9.79086 13 12 13ZM12 31C17.5228 31 22 27.4183 22 23C22 18.5817 17.5228 15 12 15C6.47715 15 2 18.5817 2 23C2 27.4183 6.47715 31 12 31Z" Fill="White" />
+                        <Border.OpacityMask>
+                            <VisualBrush Visual="{Binding ElementName=myBorder3}" />
+                        </Border.OpacityMask>
+                    </Border>
+                    <Border
+                        Width="24"
+                        Height="24"
+                        BorderBrush="#1770F4"
+                        BorderThickness="2"
+                        CornerRadius="100" />
+                </Grid>
             </Button>
             <Separator BorderBrush="#94989C" BorderThickness="1">
                 <Separator.LayoutTransform>