Wpf vertical progress bar styling Wpf vertical progress bar styling wpf wpf

Wpf vertical progress bar styling


There is a ControlTemplate.Triggers in the default Template. This trigger rotates the angle by -90°.

If you add

     <ControlTemplate.Triggers>                            <Trigger Property="Orientation" Value="Vertical">                                <Setter Property="LayoutTransform" TargetName="TemplateRoot">                                    <Setter.Value>                                        <RotateTransform Angle="-90"/>                                    </Setter.Value>                                </Setter>                            </Trigger>     </ControlTemplate.Triggers>

to your control and name the parenting grid "TemplateRoot" you can set the orientation.

Here's your template

    <Style TargetType="{x:Type ProgressBar}" x:Key="{x:Type ProgressBar}">        <Setter Property="Template">            <Setter.Value>                <ControlTemplate TargetType="{x:Type ProgressBar}">                    <Grid x:Name="TemplateRoot">                        <Rectangle Name="PART_Track" StrokeThickness="1" >                            <Rectangle.Fill>                                <SolidColorBrush Color="#FF00FF00"></SolidColorBrush>                            </Rectangle.Fill>                        </Rectangle>                        <DockPanel Margin="1">                            <Rectangle Name="PART_Indicator">                            </Rectangle>                            <Rectangle Name="Mask" MinWidth="{TemplateBinding Width}" Fill="#C0C0C0"/>                        </DockPanel>                    </Grid>                    <ControlTemplate.Triggers>                        <Trigger Property="Orientation" Value="Vertical">                            <Setter Property="LayoutTransform" TargetName="TemplateRoot">                                <Setter.Value>                                    <RotateTransform Angle="-90"/>                                </Setter.Value>                            </Setter>                        </Trigger>                    </ControlTemplate.Triggers>                </ControlTemplate>            </Setter.Value>        </Setter>    </Style>