Class RadBusyIndicator
Represents a sophisticated loading indicator control that provides visual feedback to users during long-running operations. The RadBusyIndicator offers a rich collection of built-in animations and extensive customization options to create engaging loading experiences that keep users informed and engaged while content is being processed.
Namespace: Telerik.Maui.Controls
Assembly: Telerik.Maui.Controls.dll
Syntax
public class RadBusyIndicator : RadLayout
Remarks
The RadBusyIndicator is designed to enhance user experience by providing clear visual feedback during asynchronous operations such as data loading, file processing, network requests, or any time-consuming tasks. It automatically manages the display of loading animations and can optionally dim or hide underlying content to focus user attention on the loading state.
Key Features:
- Rich Animation Library: 10 built-in animation types ranging from simple spinners to complex geometric patterns
- Custom Animation Support: Create your own animations using the flexible RadAnimation system
- Content Management: Automatically dim or hide content while busy, with customizable opacity levels
- Flexible Content Templates: Use custom templates for busy content including text, images, and complex layouts
- Responsive Design: Automatically adapts to different screen sizes and orientations
- Theme Integration: Seamlessly integrates with application themes and supports custom styling
Animation Customization:
- Size Control: Customize animation dimensions with AnimationContentWidthRequest and AnimationContentHeightRequest
- Color Theming: Apply custom colors to match your application's brand and design
- Performance Optimized: Hardware-accelerated animations for smooth performance across all platforms
Perfect for scenarios including data loading screens, form submission feedback, file upload/download progress, authentication processes, and any situation where users need clear indication that the application is actively working on their request. The control automatically handles platform-specific rendering optimizations to ensure consistent performance across iOS, Android, Windows, and macOS.
Examples
Basic usage with default animation:
<telerik:RadBusyIndicator IsBusy="{Binding IsLoading}"
AnimationType="Animation1" />
Custom styling with busy content:
<telerik:RadBusyIndicator IsBusy="{Binding IsProcessing}"
AnimationType="Animation5"
AnimationContentColor="#FF6B35"
ContentUnderOpacity="0.3">
<telerik:RadBusyIndicator.BusyContent>
<StackLayout>
<Label Text="Processing your request..." HorizontalOptions="Center" />
<Label Text="Please wait..." FontSize="12" TextColor="Gray" HorizontalOptions="Center" />
</StackLayout>
</telerik:RadBusyIndicator.BusyContent>
<telerik:RadBusyIndicator.Content>
<!-- Your main content here -->
</telerik:RadBusyIndicator.Content>
</telerik:RadBusyIndicator>
Custom animation with multiple RadAnimation objects:
<telerik:RadBusyIndicator IsBusy="True" AnimationType="Custom">
<telerik:RadBusyIndicator.Animations>
<telerik:RadScaleAnimation TargetScale="1.2" Duration="1000" />
<telerik:RadRotationAnimation Angle="360" Duration="2000" />
</telerik:RadBusyIndicator.Animations>
</telerik:RadBusyIndicator>
Constructors
RadBusyIndicator()
Initializes a new instance of the RadBusyIndicator class with default settings. Creates a ready-to-use busy indicator with platform-optimized default animation and styling.
Declaration
public RadBusyIndicator()
Fields
AnimationContentColorProperty
Identifies the AnimationContentColor bindable property.
Declaration
public static readonly BindableProperty AnimationContentColorProperty
Field Value
Microsoft.Maui.Controls.BindableProperty
|
AnimationContentHeightRequestProperty
Identifies the AnimationContentHeightRequest bindable property.
Declaration
public static readonly BindableProperty AnimationContentHeightRequestProperty
Field Value
Microsoft.Maui.Controls.BindableProperty
|
AnimationContentWidthRequestProperty
Identifies the AnimationContentWidthRequest bindable property.
Declaration
public static readonly BindableProperty AnimationContentWidthRequestProperty
Field Value
Microsoft.Maui.Controls.BindableProperty
|
AnimationTypeProperty
Identifies the AnimationType bindable property.
Declaration
public static readonly BindableProperty AnimationTypeProperty
Field Value
Microsoft.Maui.Controls.BindableProperty
|
BusyContentProperty
Identifies the BusyContent bindable property.
Declaration
public static readonly BindableProperty BusyContentProperty
Field Value
Microsoft.Maui.Controls.BindableProperty
|
BusyContentTemplateProperty
Identifies the BusyContentTemplate bindable property.
Declaration
public static readonly BindableProperty BusyContentTemplateProperty
Field Value
Microsoft.Maui.Controls.BindableProperty
|
ContentProperty
Identifies the Content bindable property.
Declaration
public static readonly BindableProperty ContentProperty
Field Value
Microsoft.Maui.Controls.BindableProperty
|
ContentUnderOpacityProperty
Identifies the ContentUnderOpacity bindable property.
Declaration
public static readonly BindableProperty ContentUnderOpacityProperty
Field Value
Microsoft.Maui.Controls.BindableProperty
|
IsBusyProperty
Identifies the IsBusy bindable property.
Declaration
public static readonly BindableProperty IsBusyProperty
Field Value
Microsoft.Maui.Controls.BindableProperty
|
Properties
AnimationContentColor
Gets or sets the color of the animation content elements. This property allows you to customize the visual appearance of the loading animation to match your application's theme and branding.
Declaration
public Color AnimationContentColor { get; set; }
Property Value
Microsoft.Maui.Graphics.Color
|
AnimationContentHeightRequest
Gets or sets the requested height of the animation content in device-independent units. This property controls the vertical size of the animated loading indicator. Use -1 for automatic sizing based on the animation type.
Declaration
public double AnimationContentHeightRequest { get; set; }
Property Value
System.Double
|
AnimationContentWidthRequest
Gets or sets the requested width of the animation content in device-independent units. This property controls the horizontal size of the animated loading indicator. Use -1 for automatic sizing based on the animation type.
Declaration
public double AnimationContentWidthRequest { get; set; }
Property Value
System.Double
|
Animations
Gets a collection of custom RadAnimation objects used when AnimationType is set to Custom. Add multiple RadAnimation objects to create complex, layered animations with combined effects like rotation, scaling, and translation.
Declaration
public Collection<RadAnimation> Animations { get; }
Property Value
System.Collections.ObjectModel.Collection<RadAnimation>
|
AnimationType
Gets or sets the animation style used to display the loading indicator. Choose from 10 built-in animation types (Animation1-Animation10) or use Custom to define your own animations through the Animations collection.
Declaration
public AnimationType AnimationType { get; set; }
Property Value
AnimationType
|
BusyContent
Gets or sets the custom content displayed alongside the loading animation when the indicator is in a busy state. Use this property to show informative messages, progress details, or any custom UI elements during loading operations.
Declaration
public View BusyContent { get; set; }
Property Value
Microsoft.Maui.Controls.View
|
BusyContentTemplate
Gets or sets the control template used to define the layout and appearance of the busy content. This template provides complete control over how the busy state is presented, allowing for sophisticated loading screens and layouts.
Declaration
public ControlTemplate BusyContentTemplate { get; set; }
Property Value
Microsoft.Maui.Controls.ControlTemplate
|
Content
Gets or sets the main content that is displayed when the busy indicator is not in a busy state. This content is automatically managed by the control, being dimmed or hidden based on the IsBusy state and ContentUnderOpacity settings.
Declaration
public View Content { get; set; }
Property Value
Microsoft.Maui.Controls.View
|
ContentUnderOpacity
Gets or sets the opacity level applied to the Content when IsBusy is true. Use values from 0.0 (completely transparent) to 1.0 (fully opaque) to control how much the underlying content is dimmed during loading.
Declaration
public double ContentUnderOpacity { get; set; }
Property Value
System.Double
|
IsBusy
Gets or sets a value indicating whether the busy indicator is currently in a busy state. When true, the loading animation and busy content are displayed while the main content is dimmed or hidden according to ContentUnderOpacity.
Declaration
public bool IsBusy { get; set; }
Property Value
System.Boolean
|
Methods
CreateLayoutManager()
Creates the layout manager for this layout.
Declaration
protected override ILayoutManager CreateLayoutManager()
Returns
Microsoft.Maui.Layouts.ILayoutManager
An instance of RadLayoutManager that manages the layout of child elements. |
Overrides
OnBindingContextChanged()
Declaration
protected override void OnBindingContextChanged()