Images and live content
Images
Use PageTurnView when your application already supplies SKImage values.
TurnView.FrontImage = currentPage;
TurnView.UnderPageImage = nextPage;
TurnView.PreviousPageImage = previousPage;
TurnView.BacksideMode = PageBacksideMode.CustomContent;
TurnView.BackImage = reverseSide;
Keep assigned images alive. Before disposing or recycling an image set, guard
callbacks that can restart a turn, cancel interaction and clear the image
properties. The control never disposes your images. Use
ContentScale="AspectFit" to preserve their proportions.
If PreviousPageImage is absent, backward turns fall back to UnderPageImage.
Supply both when the neighboring pages differ.
Live MAUI views
Set PageCurlView.FrontContent to a MAUI view. For a separate reverse side,
set BackContent and choose BacksideMode="CustomContent". Mirrored and
solid-color modes need no second view.
PageAspectRatio fits the live page within the control's available space,
including its Padding. Resizing preserves that frame's proportions for both
the live view and its turning snapshot. Spreads fit two pages using the same rule.
The control owns its captured textures. Your application owns supplied
UnderPageImage and PreviousPageImage values, and any media or other resources
used by the hosted views. Use the same borrowed-image cleanup rules above for
destination images.
After changing content in place, request a fresh capture:
await Reader.RefreshSnapshotAsync(cancellationToken);
The control retains the last successful image when capture fails. Handle
SnapshotFailed to explain that state to the user. A completed refresh task
is not proof of a new frame when the platform adapter reports failure through
that event.
Video
A native video layer may not appear in a page snapshot. Keep a poster view beneath the player, or supply a poster as the curl content. The sample uses a bundled clip and still image; the library itself has no media-player dependency.
Interaction settings
LockedEdgeorLockedAnchorchooses the stationary edge or pinned corner.PageChangeThresholdcontrols the travel required to commit on release.FlickEnabledallows a quick gesture to finish sooner.ReduceMotioncompletes releases and commands without settling animation.
Use labeled navigation buttons as an alternative to gestures. Update the model
from PageTurnCompleted for both paths. See the API reference for the
properties exposed by each control.
When constructing PageTurnView with PageCurlOptions, the supplied threshold
and flick settings are preserved together. The view retains that options instance;
later interaction-property changes update it.