Skip to content
Shiny Controls v1.0 - The Ultra Control Suite for .NET MAUI & BlazorO...M...G!

ShinyImage | Properties & Events

Property Type Default Description
Uri string? null The image to load. http/https goes through IImageService; resource:// reads an embedded resource; data: is decoded inline; anything else is a file path or bundled asset. See Image Sources
Source ImageSource? null An explicit source. Takes precedence over Uri and skips the service entirely
Property Type Default Description
PlaceholderImage ImageSource? null Artwork shown before and during the load, behind the ring
ErrorImage ImageSource? null Artwork shown on failure. Ignored when ErrorTemplate is set
LoadingTemplate DataTemplate? null Replaces the ring. BindingContext is the live ImageLoadProgress
ErrorTemplate DataTemplate? null Replaces the error artwork
Property Type Default Description
Aspect Aspect AspectFit How the image scales. Applies to the placeholder and to SVG too
FadeInDuration uint 150 Fade-in milliseconds once loaded. 0 shows it instantly
SvgTintColor Color? null What currentColor resolves to in an SVG. Null draws it black. Ignored by rasters and by artwork with its own colours. See SVG
RingSize double 48 Diameter of the loading ring
RingColor Color? null Progress arc; null uses the theme Primary token
RingTrackColor Color? null Unfilled track; null uses SurfaceContainerHighest
ProgressTextColor Color? null Percentage label; null uses OnSurface
ShowProgressText bool true Draw the percentage inside the ring. Never shown when indeterminate
Property Type Default Description
CacheEnabled bool true Whether this image participates in the memory and disk caches
CacheDuration TimeSpan? null Overrides ImageOptions.DiskCacheDuration for this image. A server-supplied Cache-Control/Expires still wins
Property Type Default Description
State ImageLoadState None None, Queued, Downloading, Loaded, Failed
Progress ImageLoadProgress The live snapshot; also the LoadingTemplate binding context
IsLoading bool false True while queued or downloading
LoadError Exception? null Why the last load failed
Member Type Description
ImageLoadedCommand ICommand? Invoked with ImageLoadedEventArgs(Uri, Origin, ContentLength)
ImageFailedCommand ICommand? Invoked with the exception
ImageLoaded event Raised once the image is on screen
ImageFailed event Raised with ImageFailedEventArgs(Uri, Error) when a load fails
ReloadAsync() method Re-fetches, skipping both cache tiers — and, for SVG, re-parsing
Dispose() method Cancels any in-flight load and releases the control’s resources

These are plain CLR properties rather than bindable ones — they exist to be assigned from code.

Property Type Description
ImageService IImageService The pipeline this control loads through. Assign to override the resolved one for this instance
SvgCache SvgCache Where parsed SVG documents are shared from. Assign to give a screen its own, or to isolate a test
Parameter Type Default Description
Uri string? null The image to load. Relative and absolute URLs both work
PlaceholderUri string? null Artwork shown before and during the load
ErrorUri string? null Artwork on failure. A built-in glyph is used when neither this nor ErrorContent is set
Alt string? null Alt text
ObjectFit string contain CSS object-fit
FadeInDuration int 150 Fade-in milliseconds
LoadingContent RenderFragment<ImageLoadProgress>? null Replaces the ring; context is the live progress
ErrorContent RenderFragment<ImageLoadProgress>? null Replaces the error artwork
RingSize double 48 Ring diameter in px
ShowProgressText bool true Percentage inside the ring
RingColor / RingTrackColor / ProgressTextColor string theme vars CSS colours
DisableProgress bool false Skip the streamed fetch; let the browser load the URL directly
ErrorGlyph string 🖼 Glyph used when no error artwork is supplied
CssClass string? null Extra classes on the wrapper

Callbacks: ImageLoaded, ImageFailed. Method: ReloadAsync().

There is no Source, CacheEnabled, CacheDuration or SvgTintColor on Blazor — see Blazor for why.

Member Type Description
State ImageLoadState Where the load is
BytesRead long How much has arrived
TotalBytes long? The expected size, when known
Percent double? 01, or null when a percentage would be a lie
PercentDisplay double 0100, for binding to a progress bar
IsIndeterminate bool True exactly when Percent is null