This repository exposes two packages with different responsibilities:
| Package | Use it when you need |
|---|---|
PanAndZoom |
An interactive viewport control with zoom, pan, history, bounds, resize, rotation, and state persistence support |
HeadlessTestingFramework |
Automated Avalonia UI tests with touch, wheel, keyboard, tree inspection, screenshots, recordings, and Appium-like interaction APIs |
ZoomBorder AddsAvalonia.Controls.PanAndZoom.ZoomBorder wraps a single child and manages a transform matrix over that content. Common capabilities include:
KeepContentVisible and FillViewportICommand bindings for MVVM surfacesThe testing package provides several layers:
Avalonia.HeadlessTestingFramework.TouchInputSimulator, Avalonia.HeadlessTestingFramework.KeyboardInputSimulator, Avalonia.HeadlessTestingFramework.MouseInputSimulatorAvalonia.HeadlessTestingFramework.GestureSimulator, Avalonia.HeadlessTestingFramework.MultiTouchTestHelperFactoryAvalonia.HeadlessTestingFramework.ControlFinder, Avalonia.HeadlessTestingFramework.TreeXPath, Avalonia.HeadlessTestingFramework.TreeValidatorAvalonia.HeadlessTestingFramework.Appium.AvaloniaDriver, Avalonia.HeadlessTestingFramework.Recording.HeadlessScreenRecorder