Sfoglia il codice sorgente

avalonia: Fixed DocumentViewer sizing issue

Kenric Nugteren 3 settimane fa
parent
commit
738eba7151

+ 3 - 6
PRS.Avalonia/PRS.Avalonia/Components/DocumentList/DocumentViewer.axaml.cs

@@ -54,7 +54,6 @@ public partial class DocumentViewer : UserControl
         OuterCanvas.AddHandler(PanAndZoomGestureRecognizer.PanAndZoomEndedEvent, ImageContainer_PinchEnded);
         OuterCanvas.AddHandler(PanAndZoomGestureRecognizer.PanAndZoomEvent, ImageContainer_Pinch);
 
-        OuterCanvas.SizeChanged += ImageContainer_SizeChanged;
         OuterCanvas.PointerWheelChanged += OuterCanvas_PointerWheelChanged;
     }
 
@@ -85,11 +84,6 @@ public partial class DocumentViewer : UserControl
         }
     }
 
-    private void ImageContainer_SizeChanged(object? sender, SizeChangedEventArgs e)
-    {
-        PositionImage();
-    }
-
     private void ImageContainer_Pinch(object? sender, PanAndZoomEventArgs e)
     {
         Zoom(e.ScaleOrigin - e.Pan, e.ScaleOrigin, _originalScaleFactor * e.Scale);
@@ -121,6 +115,8 @@ public partial class DocumentViewer : UserControl
 
     private void PositionImage()
     {
+        if (ImageWidth == 0 || ImageHeight == 0) return;
+
         var canvasWidth = OuterCanvas.Bounds.Width;
         var canvasHeight = OuterCanvas.Bounds.Height;
 
@@ -176,6 +172,7 @@ public partial class DocumentViewer : UserControl
             {
                 _image = ByteArrayToImageSourceConverter.Instance.Convert(bitmap);
                 Image.Source = _image;
+                PositionImage();
                 Image.IsVisible = true;
                 NoImage.IsVisible = false;
                 return;