ZoomBorder maintains a transform matrix that maps content coordinates into viewport coordinates. Most higher-level APIs are thin wrappers over that model.
ZoomBorderUse these methods instead of manually duplicating matrix math:
Avalonia.Controls.PanAndZoom.ZoomBorder.ViewportToContent(Avalonia.Point)Avalonia.Controls.PanAndZoom.ZoomBorder.ContentToViewport(Avalonia.Point)Avalonia.Controls.PanAndZoom.ZoomBorder.ViewportToContent(Avalonia.Rect)Avalonia.Controls.PanAndZoom.ZoomBorder.ContentToViewport(Avalonia.Rect)Avalonia.Controls.PanAndZoom.ZoomBorder.GetContentToScreenMatrixAvalonia.Controls.PanAndZoom.ZoomBorder.GetScreenToContentMatrixThese become important when:
Avalonia.Controls.PanAndZoom.MatrixHelper contains reusable helpers such as:
Translate(...)ScaleAt(...)Rotation(...)TransformPoint(...)It is useful when you build custom overlays or test matrix calculations separately from the control.
Two methods are especially important for viewport-aware logic:
Avalonia.Controls.PanAndZoom.ZoomBorder.GetVisibleContentBoundsAvalonia.Controls.PanAndZoom.ZoomBorder.GetViewportBoundsThey allow item culling, overlay rendering, and "jump to region" UX without duplicating coordinate conversion code.