Bladeren bron

链接 注释-优化右键添加

OYXH\oyxh 1 jaar geleden
bovenliggende
commit
4f18b5c291

+ 56 - 58
PDF Office/ViewModels/PropertyPanel/AnnotPanel/LinkAnnotPropertyViewModel.cs

@@ -644,7 +644,7 @@ namespace PDF_Master.ViewModels.PropertyPanel.AnnotPanel
         /// <param name="obj"></param>
         private void PageNumTextLostFocus(object obj)
         {
-            if (!string.IsNullOrEmpty(PageNumTextContent))
+            if (!string.IsNullOrEmpty(PageNumTextContent) &&  pdfViewer.MouseMode == MouseModes.AnnotCreate)
             {
                 if (CheckPageNumVaild(out int pageNum, PageNumTextContent))
                 {
@@ -698,16 +698,16 @@ namespace PDF_Master.ViewModels.PropertyPanel.AnnotPanel
                         LinkAnnotArgs?.InvokeLinkSaveCalled(this, EventArgs.Empty);
                     }
 
-                    if (viewContentViewModel.IsRightMenuSelectedTextAddLink || viewContentViewModel.IsRightMenuCreateLink)
-                    {
-                        viewContentViewModel.IsRightMenuSelectedTextAddLink = false;
-                        viewContentViewModel.IsRightMenuCreateLink = false;
+                    //if (viewContentViewModel.IsRightMenuSelectedTextAddLink || viewContentViewModel.IsRightMenuCreateLink)
+                    //{
+                    //    viewContentViewModel.IsRightMenuSelectedTextAddLink = false;
+                    //    viewContentViewModel.IsRightMenuCreateLink = false;
 
-                        viewContentViewModel.SelectedPrpoertyPanel("PropertyPanelContent", null);
-                        var annotArgs = new SelectToolArgs();
-                        pdfViewer.SetToolParam(annotArgs);
-                        return;
-                    }
+                    //    viewContentViewModel.SelectedPrpoertyPanel("PropertyPanelContent", null);
+                    //    var annotArgs = new SelectToolArgs();
+                    //    pdfViewer.SetToolParam(annotArgs);
+                    //    return;
+                    //}
                     pdfViewer.SelectAnnotation(LinkAnnotArgs.PageIndex, LinkAnnotArgs.AnnotIndex);
                     //SelectAnnotation();
                 }
@@ -824,45 +824,49 @@ namespace PDF_Master.ViewModels.PropertyPanel.AnnotPanel
 
             //    pdfViewer.SetToolParam(LinkAnnotArgs);
             //}
+            if (pdfViewer.MouseMode == MouseModes.AnnotCreate)
+            {
 
-            historyPageIndex = pdfViewer.CurrentIndex;
 
-            isSelected = false;
+                historyPageIndex = pdfViewer.CurrentIndex;
 
-            BtnLocationIsChecked = true;
+                isSelected = false;
 
-            if (region.Regions.ContainsRegionWithName(viewContentViewModel.TipContentRegionName))
-            {
-                var views = region.Regions[viewContentViewModel.TipContentRegionName].Views;
+                BtnLocationIsChecked = true;
 
-                var isHas = views.FindFirst(q => q is Views.TipContent.LinkAnnotTip);
-                if (isHas != null)
+                if (region.Regions.ContainsRegionWithName(viewContentViewModel.TipContentRegionName))
                 {
-                    region.Regions[viewContentViewModel.TipContentRegionName].Activate(isHas);
+                    var views = region.Regions[viewContentViewModel.TipContentRegionName].Views;
+
+                    var isHas = views.FindFirst(q => q is Views.TipContent.LinkAnnotTip);
+                    if (isHas != null)
+                    {
+                        region.Regions[viewContentViewModel.TipContentRegionName].Activate(isHas);
+                    }
+                    else
+                    {
+                        region.RequestNavigate(viewContentViewModel.TipContentRegionName, "LinkAnnotTip");
+                    }
+                }
+                //viewContentViewModel.TipVisible = Visibility.Visible;
+                if (BtnLocationIsChecked && viewContentViewModel.TipVisible == Visibility.Visible)
+                {
+                    pdfViewer.EnableDrawSelectArea(false);
+                    viewContentViewModel.ShowTip(false);
+                    BtnLocationIsChecked = false;
+                    PageNumTextIsEnabled = true;
                 }
                 else
                 {
-                    region.RequestNavigate(viewContentViewModel.TipContentRegionName, "LinkAnnotTip");
+                    pdfViewer.EnableDrawSelectArea(true);
+                    viewContentViewModel.ShowTip(true);
+                    PageNumTextIsEnabled = false;
+                    //BtnLocationIsChecked = true;
                 }
-            }
-            //viewContentViewModel.TipVisible = Visibility.Visible;
-            if (BtnLocationIsChecked && viewContentViewModel.TipVisible == Visibility.Visible)
-            {
-                pdfViewer.EnableDrawSelectArea(false);
-                viewContentViewModel.ShowTip(false);
-                BtnLocationIsChecked = false;
-                PageNumTextIsEnabled = true;
-            }
-            else
-            {
-                pdfViewer.EnableDrawSelectArea(true);
-                viewContentViewModel.ShowTip(true);
-                PageNumTextIsEnabled = false;
-                //BtnLocationIsChecked = true;
-            }
 
-            //CommonDrawData.LinkAreaSelectBrush = new SolidColorBrush(System.Windows.Media.Color.FromArgb(50, 23, 112, 244));
-            //AnnotAttribEvent.IsAnnotCreateReset = true;
+                //CommonDrawData.LinkAreaSelectBrush = new SolidColorBrush(System.Windows.Media.Color.FromArgb(50, 23, 112, 244));
+                //AnnotAttribEvent.IsAnnotCreateReset = true;
+            }
         }
 
         private Rect paintrect;
@@ -891,7 +895,9 @@ namespace PDF_Master.ViewModels.PropertyPanel.AnnotPanel
 
                         return;
                     }
-                    if (pdfViewer.ToolManager.CurrentAnnotArgs.EventType == AnnotArgsType.AnnotLink && pdfViewer.MouseMode == MouseModes.AnnotCreate)
+                    if ((pdfViewer.ToolManager.CurrentAnnotArgs.EventType == AnnotArgsType.AnnotLink && pdfViewer.MouseMode == MouseModes.AnnotCreate)
+                        || (viewContentViewModel.IsRightMenuSelectedTextAddLink && pdfViewer.MouseMode == MouseModes.AnnotCreate)
+                        || (viewContentViewModel.IsRightMenuCreateLink && pdfViewer.MouseMode == MouseModes.AnnotCreate))
                     {
                         propertyPanel.IsAddLink = false;
                         System.Windows.Size pageSize = pdfViewer.Document.GetPageSize(areaInfo.PageIndex);
@@ -955,30 +961,22 @@ namespace PDF_Master.ViewModels.PropertyPanel.AnnotPanel
                         //{
                         //pdfViewer.SelectAnnotation(historyPageIndex, LinkAnnotArgs.AnnotIndex);
                         //}
-
-                        //右键选择文本 创建链接
-                        if (viewContentViewModel.IsRightMenuSelectedTextAddLink || viewContentViewModel.IsRightMenuCreateLink || viewContentViewModel.IsSelectedTextAddLink)
+                        if (viewContentViewModel.IsSelectedTextAddLink)
                         {
-                            viewContentViewModel.IsRightMenuSelectedTextAddLink = false;
-                            viewContentViewModel.IsRightMenuCreateLink = false;
                             viewContentViewModel.IsSelectedTextAddLink = false;
-
-                            viewContentViewModel.SelectedPrpoertyPanel("PropertyPanelContent", null);
-                            //pdfViewer.DisableClearSelectAnnot(false);
-                            //pdfViewer.ClearSelectAnnots();
-                            var annotArgs = new SelectToolArgs();
-                            pdfViewer.SetToolParam(annotArgs);
-                            return;
                         }
-                        //没有选择注释工具、也不是右键添加注释
-                        //在阅读页,选择注释后,点击按钮
-                        //需要设置相关参数
-                        //if (propertyPanel.IsLocationLink)
+                        //右键选择文本 创建链接
+                        //if (viewContentViewModel.IsRightMenuSelectedTextAddLink || viewContentViewModel.IsRightMenuCreateLink )
                         //{
-                        //    pdfViewer.SetMouseMode(MouseModes.PanTool);
-                        //    propertyPanel.IsLocationLink = false;
-                        //    pdfViewer.SelectAnnotation(historyPageIndex, LinkAnnotArgs.AnnotIndex);
+                        //    viewContentViewModel.IsRightMenuSelectedTextAddLink = false;
+                        //    viewContentViewModel.IsRightMenuCreateLink = false;
+
+                        //    viewContentViewModel.SelectedPrpoertyPanel("PropertyPanelContent", null);
+                        //    var annotArgs = new SelectToolArgs();
+                        //    pdfViewer.SetToolParam(annotArgs);
+                        //    return;
                         //}
+                        
                     }
                 }
             }

+ 10 - 3
PDF Office/ViewModels/Tools/AnnotToolContentViewModel.Command.cs

@@ -501,9 +501,16 @@ namespace PDF_Master.ViewModels.Tools
             }
             if (e == null)
             {
-                //PDFViewer.DisableClearSelectAnnot(false);
-                //PropertyPanel.IsSharpAnnotSelected = true;
-                //PropertyPanel.IsFreeHandSelected = true;
+                if (viewContentViewModel.IsRightMenuSelectedTextAddLink || viewContentViewModel.IsRightMenuCreateLink)
+                {
+                    viewContentViewModel.IsRightMenuSelectedTextAddLink = false;
+                    viewContentViewModel.IsRightMenuCreateLink = false;
+
+                    viewContentViewModel.SelectedPrpoertyPanel("PropertyPanelContent", null);
+                    var annotArgs = new SelectToolArgs();
+                    PDFViewer.SetToolParam(annotArgs);
+                    return;
+                }
                 if (string.IsNullOrWhiteSpace(StrAnnotToolChecked))
                 {
                     //PDFViewer.ClearSelectAnnots();