New to Telerik UI for WPFStart a free 30-day trial

Indeterminate State Animation Customization

Updated on Sep 15, 2025

The indeterminate state animation of RadCircularProgressBar is represented by the AnimationManager class. To customize the default animation, create a new RadDoubleAnimation object instance for the AnimationManager.AnimationSelector attached property. To apply the custom animation correctly, set the AnimationName property's value to IndeterminateIndicatorAnimation.

The TargetElementName property has to be set to PART_IndicatorPath. PropertyName property has to be equal to (UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle).

Setting a custom RadDoubleAnimation

XAML
    <telerik:RadCircularProgressBar Name="circularProgressBar" 
                                    IsIndeterminate="True"
                                    IndeterminateIndicatorRatio="0.25">
        <telerik:AnimationManager.AnimationSelector>
            <telerik:AnimationSelector>
                <telerik:RadDoubleAnimation AnimationName="IndeterminateIndicatorAnimation"
                                            Direction="Out" 
                                            RepeatBehavior="Forever" 
                                            Duration="00:00:01" 
                                            StartValue="0"
                                            TargetValue="360"
                                            SpeedRatio="0.3"
                                            TargetElementName="PART_IndicatorPath"
                                            PropertyName="(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle)">
                </telerik:RadDoubleAnimation>
            </telerik:AnimationSelector>
        </telerik:AnimationManager.AnimationSelector>
    </telerik:RadCircularProgressBar>

RadCircularProgressBar with custom animation

Animation Easing

The RadDoubleAnimation class supports applying animation easing. To do so, set any object that implements the IEasingFunction interface to its Easing property.

The following code snippet shows the above example with a custom BounceEase instance:

Applying a BounceEase animation easing

XAML
    <telerik:RadCircularProgressBar Name="circularProgressBar" 
                                    IsIndeterminate="True"
                                    IndeterminateIndicatorRatio="0.25">
        <telerik:AnimationManager.AnimationSelector>
            <telerik:AnimationSelector>
                <telerik:RadDoubleAnimation AnimationName="IndeterminateIndicatorAnimation"
                                            Direction="Out" 
                                            RepeatBehavior="Forever" 
                                            Duration="00:00:01" 
                                            StartValue="0"
                                            TargetValue="360"
                                            SpeedRatio="0.3"
                                            TargetElementName="PART_IndicatorPath"
                                            PropertyName="(UIElement.RenderTransform).(TransformGroup.Children)[2].(RotateTransform.Angle)">
                    <telerik:RadDoubleAnimation.Easing>
                        <BounceEase Bounces="25" Bounciness="5" EasingMode="EaseOut"/>
                    </telerik:RadDoubleAnimation.Easing>
                </telerik:RadDoubleAnimation>
            </telerik:AnimationSelector>
        </telerik:AnimationManager.AnimationSelector>
    </telerik:RadCircularProgressBar>

RadCircularProgressBar with animation easing

See Also

In this article
Animation EasingSee Also
Not finding the help you need?
Contact Support