Forráskód Böngészése

链接注释-补充选择文本右键菜单-创建链接

OYXH\oyxh 2 éve
szülő
commit
4717a05c6d

+ 1 - 1
PDF Office/ViewModels/Tools/AnnotToolContentViewModel.Function.cs

@@ -156,7 +156,7 @@ namespace PDF_Office.ViewModels.Tools
             return highlightArgs;
         }
 
-        private AnnotHandlerEventArgs GetLink(LinkAnnotArgs selectedLinkAnnotArgs = null, AnnotAttribEvent annotAttribEvent = null)
+        public AnnotHandlerEventArgs GetLink(LinkAnnotArgs selectedLinkAnnotArgs = null, AnnotAttribEvent annotAttribEvent = null)
         {
             Dictionary<AnnotAttrib, object> annotAttribsList = new Dictionary<AnnotAttrib, object>();
             LinkAnnotArgs linkArgs = new LinkAnnotArgs();

+ 29 - 3
PDF Office/ViewModels/Tools/AnnotToolContentViewModel.cs

@@ -46,6 +46,17 @@ namespace PDF_Office.ViewModels.Tools
             }
         }
 
+        private bool btnLinkIsChecked = false;
+
+        public bool BtnLinkIsChecked
+        {
+            get { return btnLinkIsChecked; }
+            set
+            {
+                SetProperty(ref btnLinkIsChecked, value);
+            }
+        }
+
         private SnapshotEditMenuViewModel snapshotEditMenuViewModel = new SnapshotEditMenuViewModel();
         public SnapshotEditMenuViewModel SnapshotEditMenuViewModel { get => snapshotEditMenuViewModel; set => snapshotEditMenuViewModel = value; }
 
@@ -733,10 +744,13 @@ namespace PDF_Office.ViewModels.Tools
                     }
                     else
                     {
-                        e.PopupMenu = NoneSelectAnnotContextMenu(sender);
-                        if (e.PopupMenu != null)
+                        if (e.PressOnSelectedText)
                         {
-                            e.Handle = true;
+                            e.PopupMenu = NoneSelectAnnotContextMenu(sender);
+                            if (e.PopupMenu != null)
+                            {
+                                e.Handle = true;
+                            }
                         }
                     }
 
@@ -784,9 +798,21 @@ namespace PDF_Office.ViewModels.Tools
             menuItem.Command = ApplicationCommands.Copy;
             popMenu.Items.Add(menuItem);
 
+            menuItem = new MenuItem();
+            menuItem.CommandTarget = (UIElement)sender;
+            menuItem.Header = "创建链接";
+            menuItem.CommandParameter = this;
+            menuItem.Command = viewContentViewModel.CreateLinkCommand;
+            menuItem.Click += MenuItem_Click;
+            popMenu.Items.Add(menuItem);
             return popMenu;
         }
 
+        private void MenuItem_Click(object sender, RoutedEventArgs e)
+        {
+            BtnLinkIsChecked = true;
+        }
+
         /// <summary>
         /// 展开显示属性面板
         /// </summary>

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

@@ -446,6 +446,8 @@ namespace PDF_Office.ViewModels
 
         public DelegateCommand ShareCommand { get; set; }
 
+        public DelegateCommand<object> CreateLinkCommand { get; set; }
+
         #endregion 命令
 
         public ViewContentViewModel(IRegionManager regionManager, IDialogService dialogService, IEventAggregator eventAggregator)
@@ -475,6 +477,8 @@ namespace PDF_Office.ViewModels
             PrintCommand = new DelegateCommand(ShowPrintDialog);
 
             SettingsCommand = new DelegateCommand(SettingsEvent);
+            CreateLinkCommand = new DelegateCommand<object>(CreateLinkEvent);
+
             //未显示时无法注册上Region名称
             ToolContentVisible = Visibility.Visible;
             ToolsBarContentVisible = Visibility.Visible;
@@ -500,6 +504,21 @@ namespace PDF_Office.ViewModels
             EnterSelectedBar("TabItemAnnotation");
         }
 
+        /// <summary>
+        /// 右键菜单创建链接
+        /// </summary>
+        /// <param name="obj"></param>
+        private void CreateLinkEvent(object obj)
+        {
+            if (obj is AnnotToolContentViewModel toolContentViewModel)
+            {
+                AnnotHandlerEventArgs annotArgs = toolContentViewModel.GetLink();
+                PDFViewer.SetMouseMode(MouseModes.AnnotCreate);
+                PDFViewer.SetToolParam(annotArgs);
+                this.IsPropertyOpen = true;
+            }
+        }
+
         private void share()
         {
             try

A különbségek nem kerülnek megjelenítésre, a fájl túl nagy
+ 1 - 1
PDF Office/Views/Tools/AnnotToolContent.xaml