Kaynağa Gözat

链接-定位问题优化

OYXH\oyxh 1 yıl önce
ebeveyn
işleme
55e7a22ee7

+ 15 - 9
PDF Office/ViewModels/PropertyPanel/AnnotPanel/LinkAnnotPropertyViewModel.cs

@@ -1138,17 +1138,22 @@ namespace PDF_Master.ViewModels.PropertyPanel.AnnotPanel
 
         private void GoToPage(int pageIndex)
         {
+            //注释位置
+            Rect rect = LinkAnnotArgs.GetLinkPaintArea();
             //定位
             paintrect = LinkAnnotArgs.GetLinkCreateArea();
 
             //System.Windows.Point point =  LinkAnnotArgs.DestinationPos;
             double height = 0;
-            CPDFDocument doc = pdfViewer.Document;
-            CPDFPage docPage;
+            //CPDFDocument doc = pdfViewer.Document;
+            //CPDFPage docPage;
             double zoom = pdfViewer.ZoomFactor;
-            docPage = doc.PageAtIndex(pageIndex, false);
+            //docPage = doc.PageAtIndex(pageIndex, false);
             if (!paintrect.IsEmpty)
             {
+                CPDFPage docPage = pdfViewer.Document.PageAtIndex(pageIndex, false);
+                //pdfViewer.GoToPage(pageIndex, new System.Windows.Point(0, docPage.PageSize.Height - paintrect.Y*2));
+
                 double vertical = pdfViewer.GetVerticalOffset();
                 if (docPage.PageSize.Height / 2 < paintrect.Top)
                 {
@@ -1164,7 +1169,7 @@ namespace PDF_Master.ViewModels.PropertyPanel.AnnotPanel
                         pdfViewer.ScrollToVerticalOffset(height);
                     }
                 }
-                //height = vertical + (paintrect.Bottom * zoom);
+                height = vertical + (paintrect.Bottom * zoom);
             }
         }
 
@@ -1414,11 +1419,12 @@ namespace PDF_Master.ViewModels.PropertyPanel.AnnotPanel
                 {
                     if (pdfViewer != null && pdfViewer.ToolManager != null && pdfViewer.ToolManager.CurrentAnnotArgs?.EventType == AnnotArgsType.AnnotLink)
                     {
-                        LinkAnnotArgs = pdfViewer.ToolManager.CurrentAnnotArgs as LinkAnnotArgs;
-                        if (LinkAnnotArgs.AnnotIndex == -1)
-                        {
-                            LinkAnnotArgs = (LinkAnnotArgs)propertyPanel.annot;
-                        }
+                        LinkAnnotArgs = (LinkAnnotArgs)propertyPanel.annot;
+                        //LinkAnnotArgs = pdfViewer.ToolManager.CurrentAnnotArgs as LinkAnnotArgs;
+                        //if (LinkAnnotArgs.AnnotIndex == -1)
+                        //{
+                        //    LinkAnnotArgs = (LinkAnnotArgs)propertyPanel.annot;
+                        //}
 
                         if (btnGOorBack != null)
                         {