Browse Source

注释-13516

OYXH\oyxh 1 year ago
parent
commit
802b56c68b

+ 1 - 0
PDF Office/ViewModels/Tools/AnnotManager/AnnotTransfer.cs

@@ -21,6 +21,7 @@ namespace PDF_Master.ViewModels.Tools.AnnotManager
 
         public bool IsAddLink = false;
         public bool IsLocationLink = false;
+        public bool IsSelectedTextAddLink = false;
         public AnnotAttribEvent AnnotEvent { get; set; }
         public List<AnnotAttribEvent> AnnotEvents = new List<AnnotAttribEvent>();
 

+ 23 - 8
PDF Office/ViewModels/Tools/AnnotToolContentViewModel.Function.cs

@@ -367,7 +367,16 @@ namespace PDF_Master.ViewModels.Tools
                 {
                     selectedArgs = new List<AnnotHandlerEventArgs>();
                     selectedArgs.Add(linkArgs);
-                    CreateAnnotFromSelectPageText(linkArgs);
+                    AnnotHandlerEventArgs annotHandler = CreateAnnotFromSelectPageText(linkArgs);
+                    if (annotHandler is LinkAnnotArgs annotArgs)
+                    {
+                        selectedArgs.Clear();
+                        selectedArgs.Add(annotArgs);
+                        PropertyPanel.IsSelectedTextAddLink = true;
+                        //PDFViewer.SelectAnnotation(annotArgs.PageIndex, annotArgs.AnnotIndex);
+                        //viewContentViewModel.IsPropertyOpen = true;
+                        //return linkArgs;
+                    }
                 }
             }
             AddToPropertyPanel("LinkAnnotProperty", "Link", selectedArgs, annotAttribEvent);
@@ -780,8 +789,9 @@ namespace PDF_Master.ViewModels.Tools
         /// 根据选中的文本内容,来创建指定大小的注释。
         /// </summary>
         /// <param name="annotArgs"></param>
-        private void CreateAnnotFromSelectPageText(AnnotHandlerEventArgs annotArgs)
+        private AnnotHandlerEventArgs CreateAnnotFromSelectPageText(AnnotHandlerEventArgs annotArgs)
         {
+            AnnotHandlerEventArgs annotHandler = null;
             //点击注释工具,在阅读页根据选中的文本内容,创建注释矩形大小
             var drawRectTuple = DrawRectCreateAnnot();
             if (drawRectTuple != null)
@@ -792,12 +802,15 @@ namespace PDF_Master.ViewModels.Tools
                     //annotArgs.ClientRect = drawRectTuple.Item2;
                     //PDFViewer.CreatePageAnnot(drawRectTuple.Item1, annotArgs);
 
-                    LinkAnnotArgs linkArgs = new LinkAnnotArgs();
-                    linkArgs.ClientRect = drawRectTuple.Item2;
-                    linkArgs.URI = string.Empty;
-                    linkArgs.LinkType = LINK_TYPE.GOTO;
-                    linkArgs.DestIndex = drawRectTuple.Item1;
-                    PDFViewer.CreatePageAnnot(drawRectTuple.Item1, linkArgs);
+                    //LinkAnnotArgs linkArgs = new LinkAnnotArgs();
+                    linkAnnot.ClientRect = drawRectTuple.Item2;
+                    linkAnnot.URI = string.Empty;
+                    linkAnnot.LinkType = LINK_TYPE.GOTO;
+                    linkAnnot.DestIndex = drawRectTuple.Item1;
+                    PDFViewer.CreatePageAnnot(drawRectTuple.Item1, linkAnnot);
+
+                    annotHandler = linkAnnot;
+
                     //BtnLinkIsChecked = true;
                     //List<AnnotHandlerEventArgs> lists = new List<AnnotHandlerEventArgs>();
                     //lists.Add(linkArgs);
@@ -812,8 +825,10 @@ namespace PDF_Master.ViewModels.Tools
                 {
                     squareAnnot.ClientRect = drawRectTuple.Item2;
                     PDFViewer.CreatePageAnnot(drawRectTuple.Item1, squareAnnot);
+                    annotHandler = squareAnnot;
                 }
             }
+            return annotHandler;
         }
 
         //Event导航到填写与签名的属性面板

+ 7 - 2
PDF Office/ViewModels/Tools/AnnotToolContentViewModel.cs

@@ -202,12 +202,17 @@ namespace PDF_Master.ViewModels.Tools
                     PDFViewer.SetMouseMode(MouseModes.AnnotCreate);
                     PDFViewer.SetToolParam(annotArgs);
                 }
+                if (PropertyPanel.IsSelectedTextAddLink)
+                {
+                    PropertyPanel.IsSelectedTextAddLink = false;
+                    PDFViewer.SelectAnnotation(PropertyPanel.annot.PageIndex, PropertyPanel.annot.AnnotIndex);
+                }
             }
             else
             {
                 //取消选中注释工具按钮后,恢复到未编辑注释的状态
                 PropertyPanel.IsAddLink = false;
-                PropertyPanel.IsLocationLink = false;
+                //PropertyPanel.IsLocationLink = false;
                 PDFViewer.ToolManager.EnableClickCreate = false;
                 PDFViewer.SetMouseMode(MouseModes.PanTool);
                 ShowPropertyPanel(false);
@@ -374,7 +379,7 @@ namespace PDF_Master.ViewModels.Tools
                 string str = menuItem.Tag.ToString();
                 viewContentViewModel.SelectedPrpoertyPanel("PropertyPanelContent", null);
                 PropertyPanel.IsAddLink = false;
-                PropertyPanel.IsLocationLink = false;
+                //PropertyPanel.IsLocationLink = false;
                 if (str == AddAnnotType.AnnotFreehand.ToString())
                 {
                     annotHandler = GetFreehand();