다음을 통해 공유


ProgressBar styles and templates

[ This article is for Windows 8.x and Windows Phone 8.x developers writing Windows Runtime apps. If you’re developing for Windows 10, see the latest documentation ]

This topic describes the styles and templates for the ProgressBar control. You can modify these resources and the default ControlTemplate to give the control a unique appearance.

Visual states

These are the VisualStates defined in the control's default style.

VisualState name VisualStateGroup name Description
Determinate CommonStates The ProgressBar reports progress based on its Value property. IsIndeterminate is false.
Indeterminate CommonStates The ProgressBar reports generic progress with a repeating pattern. IsIndeterminate is true.
Updating CommonStates The ProgressBar is updating.
Error CommonStates The process showing progress has an error. ShowError is true.
Paused CommonStates Progress is paused. ShowPaused is true.

 

Theme resources

These resources are used in the control's default style.

Dark theme brushes

To change the colors of the control in the dark theme, override these brushes in App.xaml.

<SolidColorBrush x:Key="ProgressBarBackgroundThemeBrush" Color="#59FFFFFF" />
<SolidColorBrush x:Key="ProgressBarBorderThemeBrush" Color="Transparent" />
<SolidColorBrush x:Key="ProgressBarForegroundThemeBrush" Color="#FF5B2EC5" />
<SolidColorBrush x:Key="ProgressBarIndeterminateForegroundThemeBrush" Color="#FF8A57FF" />

Light theme brushes

To change the colors of the control in the light theme, override these brushes in App.xaml.

<SolidColorBrush x:Key="ProgressBarBackgroundThemeBrush" Color="#30000000" />
<SolidColorBrush x:Key="ProgressBarBorderThemeBrush" Color="Transparent" />
<SolidColorBrush x:Key="ProgressBarForegroundThemeBrush" Color="#FF4617B4" />
<SolidColorBrush x:Key="ProgressBarIndeterminateForegroundThemeBrush" Color="#FF4617B4" />

Other resources

<x:Double x:Key="ProgressBarThemeMinHeight">6</x:Double>
<Thickness x:Key="ProgressBarBorderThemeThickness">0</Thickness>

For more info on theme resources, including the values that are used for the HighContrast theme, see XAML theme resources reference.

Default style

<!-- Default style for Windows.UI.Xaml.Controls.ProgressBar -->
<Style TargetType="ProgressBar">
    <Setter Property="Foreground" Value="{ThemeResource ProgressBarForegroundThemeBrush}" />
    <Setter Property="Background" Value="{ThemeResource ProgressBarBackgroundThemeBrush}" />
    <Setter Property="BorderBrush" Value="{ThemeResource ProgressBarBorderThemeBrush}" />
    <Setter Property="BorderThickness" Value="{ThemeResource ProgressBarBorderThemeThickness}" />
    <Setter Property="Maximum" Value="100" />
    <Setter Property="MinHeight" Value="{ThemeResource ProgressBarThemeMinHeight}" />
    <Setter Property="IsTabStop" Value="False" />
    <Setter Property="VerticalAlignment" Value="Center" />
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="ProgressBar">
                <Grid>
                    <VisualStateManager.VisualStateGroups>
                        <VisualStateGroup x:Name="CommonStates">
                            <VisualStateGroup.Transitions>
                                <VisualTransition From="Updating" To="Determinate">
                                    <Storyboard>
                                        <RepositionThemeAnimation TargetName="ProgressBarIndicator" FromHorizontalOffset="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.IndicatorLengthDelta}" />
                                    </Storyboard>
                                </VisualTransition>
                                <VisualTransition From="Paused" To="Determinate">
                                    <Storyboard>
                                        <DoubleAnimation Storyboard.TargetName="ProgressBarIndicator"
                                                         Storyboard.TargetProperty="Opacity"
                                                         To="1"
                                                         Duration="0:0:0.25" />
                                    </Storyboard>
                                </VisualTransition>
                                <VisualTransition From="Indeterminate">
                                    <Storyboard>
                                        <FadeInThemeAnimation TargetName="EllipseGrid" />
                                    </Storyboard>
                                </VisualTransition>
                            </VisualStateGroup.Transitions>
                            <VisualState x:Name="Determinate" />
                            <VisualState x:Name="Updating" />
                            <VisualState x:Name="Indeterminate">
                                <Storyboard RepeatBehavior="Forever">
                                    <DoubleAnimation Storyboard.TargetName="EllipseGrid"
                                                     Duration="0:0:3.917"
                                                     Storyboard.TargetProperty="(UIElement.RenderTransform).(TranslateTransform.X)"
                                                     From="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.ContainerAnimationStartPosition}"
                                                     To="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.ContainerAnimationEndPosition}" />
                                    <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TranslateTransform.X)" Storyboard.TargetName="E1">
                                        <EasingDoubleKeyFrame KeyTime="0" Value="0" />
                                        <SplineDoubleKeyFrame KeyTime="0:0:1" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.EllipseAnimationWellPosition}" KeySpline="0.4,0,0.6,1" />
                                        <EasingDoubleKeyFrame KeyTime="0:0:2" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.EllipseAnimationWellPosition}" />
                                        <SplineDoubleKeyFrame KeyTime="0:0:3" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.EllipseAnimationEndPosition}" KeySpline="0.4,0,0.6,1" />
                                    </DoubleAnimationUsingKeyFrames>
                                    <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TranslateTransform.X)" Storyboard.TargetName="E2">
                                        <EasingDoubleKeyFrame KeyTime="0" Value="0" />
                                        <EasingDoubleKeyFrame KeyTime="0:0:0.167" Value="0" />
                                        <SplineDoubleKeyFrame KeyTime="0:0:1.167" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.EllipseAnimationWellPosition}" KeySpline="0.4,0,0.6,1" />
                                        <EasingDoubleKeyFrame KeyTime="0:0:2.167" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.EllipseAnimationWellPosition}" />
                                        <SplineDoubleKeyFrame KeyTime="0:0:3.167" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.EllipseAnimationEndPosition}" KeySpline="0.4,0,0.6,1" />
                                    </DoubleAnimationUsingKeyFrames>
                                    <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TranslateTransform.X)" Storyboard.TargetName="E3">
                                        <EasingDoubleKeyFrame KeyTime="0" Value="0" />
                                        <EasingDoubleKeyFrame KeyTime="0:0:0.333" Value="0" />
                                        <SplineDoubleKeyFrame KeyTime="0:0:1.333" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.EllipseAnimationWellPosition}" KeySpline="0.4,0,0.6,1" />
                                        <EasingDoubleKeyFrame KeyTime="0:0:2.333" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.EllipseAnimationWellPosition}" />
                                        <SplineDoubleKeyFrame KeyTime="0:0:3.333" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.EllipseAnimationEndPosition}" KeySpline="0.4,0,0.6,1" />
                                    </DoubleAnimationUsingKeyFrames>
                                    <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TranslateTransform.X)" Storyboard.TargetName="E4">
                                        <EasingDoubleKeyFrame KeyTime="0" Value="0" />
                                        <EasingDoubleKeyFrame KeyTime="0:0:0.5" Value="0" />
                                        <SplineDoubleKeyFrame KeyTime="0:0:1.5" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.EllipseAnimationWellPosition}" KeySpline="0.4,0,0.6,1" />
                                        <EasingDoubleKeyFrame KeyTime="0:0:2.5" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.EllipseAnimationWellPosition}" />
                                        <SplineDoubleKeyFrame KeyTime="0:0:3.5" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.EllipseAnimationEndPosition}" KeySpline="0.4,0,0.6,1" />
                                    </DoubleAnimationUsingKeyFrames>
                                    <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TranslateTransform.X)" Storyboard.TargetName="E5">
                                        <EasingDoubleKeyFrame KeyTime="0" Value="0" />
                                        <EasingDoubleKeyFrame KeyTime="0:0:0.667" Value="0" />
                                        <SplineDoubleKeyFrame KeyTime="0:0:1.667" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.EllipseAnimationWellPosition}" KeySpline="0.4,0,0.6,1" />
                                        <EasingDoubleKeyFrame KeyTime="0:0:2.667" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.EllipseAnimationWellPosition}" />
                                        <SplineDoubleKeyFrame KeyTime="0:0:3.667" Value="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.EllipseAnimationEndPosition}" KeySpline="0.4,0,0.6,1" />
                                    </DoubleAnimationUsingKeyFrames>
                                    <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TranslateTransform.X)" Storyboard.TargetName="B1">
                                        <EasingDoubleKeyFrame KeyTime="0" Value="-50" />
                                        <EasingDoubleKeyFrame KeyTime="0:0:0.5" Value="0" />
                                        <EasingDoubleKeyFrame KeyTime="0:0:2" Value="0" />
                                        <EasingDoubleKeyFrame KeyTime="0:0:3" Value="100" />
                                    </DoubleAnimationUsingKeyFrames>
                                    <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TranslateTransform.X)" Storyboard.TargetName="B2">
                                        <EasingDoubleKeyFrame KeyTime="0" Value="-50" />
                                        <EasingDoubleKeyFrame KeyTime="0:0:0.667" Value="0" />
                                        <EasingDoubleKeyFrame KeyTime="0:0:2.167" Value="0" />
                                        <EasingDoubleKeyFrame KeyTime="0:0:3.167" Value="100" />
                                    </DoubleAnimationUsingKeyFrames>
                                    <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TranslateTransform.X)" Storyboard.TargetName="B3">
                                        <EasingDoubleKeyFrame KeyTime="0" Value="-50" />
                                        <EasingDoubleKeyFrame KeyTime="0:0:0.833" Value="0" />
                                        <EasingDoubleKeyFrame KeyTime="0:0:2.333" Value="0" />
                                        <EasingDoubleKeyFrame KeyTime="0:0:3.333" Value="100" />
                                    </DoubleAnimationUsingKeyFrames>
                                    <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TranslateTransform.X)" Storyboard.TargetName="B4">
                                        <EasingDoubleKeyFrame KeyTime="0" Value="-50" />
                                        <EasingDoubleKeyFrame KeyTime="0:0:1" Value="0" />
                                        <EasingDoubleKeyFrame KeyTime="0:0:2.5" Value="0" />
                                        <EasingDoubleKeyFrame KeyTime="0:0:3.5" Value="100" />
                                    </DoubleAnimationUsingKeyFrames>
                                    <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="(UIElement.RenderTransform).(TranslateTransform.X)" Storyboard.TargetName="B5">
                                        <EasingDoubleKeyFrame KeyTime="0" Value="-50" />
                                        <EasingDoubleKeyFrame KeyTime="0:0:1.167" Value="0" />
                                        <EasingDoubleKeyFrame KeyTime="0:0:2.667" Value="0" />
                                        <EasingDoubleKeyFrame KeyTime="0:0:3.667" Value="100" />
                                    </DoubleAnimationUsingKeyFrames>
                                    <DoubleAnimation Storyboard.TargetName="EllipseGrid"
                                                     Storyboard.TargetProperty="Opacity"
                                                     To="1"
                                                     Duration="0" />
                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetName="E1"
                                                                  Storyboard.TargetProperty="Fill">
                                       <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ProgressBarIndeterminateForegroundThemeBrush}" />
                                    </ObjectAnimationUsingKeyFrames>
                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetName="E2"
                                                                  Storyboard.TargetProperty="Fill">
                                       <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ProgressBarIndeterminateForegroundThemeBrush}" />
                                    </ObjectAnimationUsingKeyFrames>
                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetName="E3"
                                                                  Storyboard.TargetProperty="Fill">
                                       <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ProgressBarIndeterminateForegroundThemeBrush}" />
                                    </ObjectAnimationUsingKeyFrames>
                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetName="E4"
                                                                  Storyboard.TargetProperty="Fill">
                                       <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ProgressBarIndeterminateForegroundThemeBrush}" />
                                    </ObjectAnimationUsingKeyFrames>
                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetName="E5"
                                                                  Storyboard.TargetProperty="Fill">
                                       <DiscreteObjectKeyFrame KeyTime="0" Value="{ThemeResource ProgressBarIndeterminateForegroundThemeBrush}" />
                                    </ObjectAnimationUsingKeyFrames>
                                    <!-- Both FadeOutThemeAnimation and a DoubleAnimation on Opacity are necessary
                                         here.  The FadeOutThemeAnimation is necessary in the Indeterminate state so
                                         that we can do a FadeInThemeAnimation when transitioning back to the
                                         Determinate state.  The DoubleAnimation on Opacity is necessary to hide the
                                         DeterminateRoot immediately so that it does not slowly fade out during each
                                         iteration of the Indeterminate state animation. -->
                                    <FadeOutThemeAnimation TargetName="DeterminateRoot" />
                                    <DoubleAnimation Storyboard.TargetName="DeterminateRoot"
                                                     Storyboard.TargetProperty="Opacity"
                                                     To="0"
                                                     Duration="0" />
                                    <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity" Storyboard.TargetName="E1">
                                        <EasingDoubleKeyFrame KeyTime="0" Value="1" />
                                        <EasingDoubleKeyFrame KeyTime="0:0:3" Value="1" />
                                        <EasingDoubleKeyFrame KeyTime="0:0:3" Value="0" />
                                    </DoubleAnimationUsingKeyFrames>
                                    <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity" Storyboard.TargetName="E2">
                                        <EasingDoubleKeyFrame KeyTime="0" Value="0" />
                                        <EasingDoubleKeyFrame KeyTime="0:0:0.167" Value="0" />
                                        <EasingDoubleKeyFrame KeyTime="0:0:0.167" Value="1" />
                                        <EasingDoubleKeyFrame KeyTime="0:0:3.167" Value="1" />
                                        <EasingDoubleKeyFrame KeyTime="0:0:3.167" Value="0" />
                                    </DoubleAnimationUsingKeyFrames>
                                    <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity" Storyboard.TargetName="E3">
                                        <EasingDoubleKeyFrame KeyTime="0" Value="0" />
                                        <EasingDoubleKeyFrame KeyTime="0:0:0.333" Value="0" />
                                        <EasingDoubleKeyFrame KeyTime="0:0:0.333" Value="1" />
                                        <EasingDoubleKeyFrame KeyTime="0:0:3.333" Value="1" />
                                        <EasingDoubleKeyFrame KeyTime="0:0:3.333" Value="0" />
                                    </DoubleAnimationUsingKeyFrames>
                                    <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity" Storyboard.TargetName="E4">
                                        <EasingDoubleKeyFrame KeyTime="0" Value="0" />
                                        <EasingDoubleKeyFrame KeyTime="0:0:0.5" Value="0" />
                                        <EasingDoubleKeyFrame KeyTime="0:0:0.5" Value="1" />
                                        <EasingDoubleKeyFrame KeyTime="0:0:3.5" Value="1" />
                                        <EasingDoubleKeyFrame KeyTime="0:0:3.5" Value="0" />
                                    </DoubleAnimationUsingKeyFrames>
                                    <DoubleAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity" Storyboard.TargetName="E5">
                                        <EasingDoubleKeyFrame KeyTime="0" Value="0" />
                                        <EasingDoubleKeyFrame KeyTime="0:0:0.667" Value="0" />
                                        <EasingDoubleKeyFrame KeyTime="0:0:0.667" Value="1" />
                                        <EasingDoubleKeyFrame KeyTime="0:0:3.667" Value="1" />
                                        <EasingDoubleKeyFrame KeyTime="0:0:3.667" Value="0" />
                                    </DoubleAnimationUsingKeyFrames>
                                </Storyboard>
                            </VisualState>
                            <VisualState x:Name="Error">
                                <Storyboard>
                                    <ObjectAnimationUsingKeyFrames Storyboard.TargetProperty="Opacity" Storyboard.TargetName="ProgressBarIndicator">
                                        <DiscreteObjectKeyFrame KeyTime="0" Value="0" />
                                    </ObjectAnimationUsingKeyFrames>
                                </Storyboard>
                            </VisualState>
                            <VisualState x:Name="Paused">
                                <Storyboard>
                                    <DoubleAnimation Storyboard.TargetName="ProgressBarIndicator"
                                                     Storyboard.TargetProperty="Opacity"
                                                     To="0.5"
                                                     Duration="0:0:0.25" />
                                </Storyboard>
                            </VisualState>
                        </VisualStateGroup>
                    </VisualStateManager.VisualStateGroups>
                    <Grid x:Name="EllipseGrid"
                          Opacity="0">
                        <Grid.RenderTransform>
                            <TranslateTransform />
                        </Grid.RenderTransform>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="Auto" />
                            <ColumnDefinition Width="Auto" />
                            <ColumnDefinition Width="Auto" />
                            <ColumnDefinition Width="Auto" />
                            <ColumnDefinition Width="Auto" />
                            <ColumnDefinition Width="Auto" />
                            <ColumnDefinition Width="Auto" />
                            <ColumnDefinition Width="Auto" />
                            <ColumnDefinition Width="Auto" />
                        </Grid.ColumnDefinitions>
                        <Border x:Name="B1"
                                Grid.Column="8"
                                RenderTransformOrigin="0.5,0.5">
                            <Border.RenderTransform>
                                <TranslateTransform />
                            </Border.RenderTransform>
                            <Ellipse x:Name="E1"
                                     Fill="{TemplateBinding Foreground}"
                                     Width="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.EllipseDiameter}"
                                     Height="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.EllipseDiameter}"
                                     RenderTransformOrigin="0.5,0.5">
                                <Ellipse.RenderTransform>
                                    <TranslateTransform />
                                </Ellipse.RenderTransform>
                            </Ellipse>
                        </Border>
                        <Rectangle Grid.Column="7"
                                   Width="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.EllipseOffset}" />
                        <Border x:Name="B2"
                                Grid.Column="6"
                                RenderTransformOrigin="0.5,0.5">
                            <Border.RenderTransform>
                                <TranslateTransform />
                            </Border.RenderTransform>
                            <Ellipse x:Name="E2"
                                     Fill="{TemplateBinding Foreground}"
                                     Width="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.EllipseDiameter}"
                                     Height="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.EllipseDiameter}"
                                     RenderTransformOrigin="0.5,0.5">
                                <Ellipse.RenderTransform>
                                    <TranslateTransform />
                                </Ellipse.RenderTransform>
                            </Ellipse>
                        </Border>
                        <Rectangle Grid.Column="5"
                                   Width="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.EllipseOffset}" />
                        <Border x:Name="B3"
                                Grid.Column="4"
                                RenderTransformOrigin="0.5,0.5">
                            <Border.RenderTransform>
                                <TranslateTransform />
                            </Border.RenderTransform>
                            <Ellipse x:Name="E3"
                                     Fill="{TemplateBinding Foreground}"
                                     Width="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.EllipseDiameter}"
                                     Height="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.EllipseDiameter}"
                                     RenderTransformOrigin="0.5,0.5">
                                <Ellipse.RenderTransform>
                                    <TranslateTransform />
                                </Ellipse.RenderTransform>
                            </Ellipse>
                        </Border>
                        <Rectangle Grid.Column="3"
                                   Width="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.EllipseOffset}" />
                        <Border x:Name="B4"
                                Grid.Column="2"
                                RenderTransformOrigin="0.5,0.5">
                            <Border.RenderTransform>
                                <TranslateTransform />
                            </Border.RenderTransform>
                            <Ellipse x:Name="E4"
                                     Fill="{TemplateBinding Foreground}"
                                     Width="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.EllipseDiameter}"
                                     Height="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.EllipseDiameter}"
                                     RenderTransformOrigin="0.5,0.5">
                                <Ellipse.RenderTransform>
                                    <TranslateTransform />
                                </Ellipse.RenderTransform>
                            </Ellipse>
                        </Border>
                        <Rectangle Grid.Column="1"
                                   Width="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.EllipseOffset}" />
                        <Border x:Name="B5"
                                Grid.Column="0"
                                RenderTransformOrigin="0.5,0.5">
                            <Border.RenderTransform>
                                <TranslateTransform />
                            </Border.RenderTransform>
                            <Ellipse x:Name="E5"
                                     Fill="{TemplateBinding Foreground}"
                                     Width="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.EllipseDiameter}"
                                     Height="{Binding RelativeSource={RelativeSource TemplatedParent}, Path=TemplateSettings.EllipseDiameter}"
                                     RenderTransformOrigin="0.5,0.5">
                                <Ellipse.RenderTransform>
                                    <TranslateTransform />
                                </Ellipse.RenderTransform>
                            </Ellipse>
                        </Border>
                    </Grid>
                    <Border x:Name="DeterminateRoot"
                            Background="{TemplateBinding Background}"
                            BorderBrush="{TemplateBinding BorderBrush}"
                            BorderThickness="{TemplateBinding BorderThickness}">
                        <Rectangle x:Name="ProgressBarIndicator"
                                   Margin="{TemplateBinding Padding}"
                                   Fill="{TemplateBinding Foreground}"
                                   HorizontalAlignment="Left" />
                    </Border>
                </Grid>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>