垂直进度条Wpf

时间:2012-07-06 14:28:59

标签: wpf xaml progress-bar

我正在尝试在WPF中实现一个垂直进度条,但我遇到了一些困难。我跟随Greg D的回答来自Vertical progress bar template .net,但这对我不起作用。我试过使用外部风格和内联,没有运气。这很烦人,因为它似乎是一个相对简单的答案。

这是我的XAML;

<ProgressBar Name="VolumeMeter" Orientation="Vertical" Margin="4,30,0,0" 
Value="50" HorizontalAlignment="Left" VerticalAlignment="Top" Height="300" Width="10">
    <ProgressBar.Template>
    <ControlTemplate>

            <Border BorderBrush="Green" x:Name="Root" BorderThickness="1">
                <Grid Name="PART_Track" Background="Red">
                    <Rectangle Name="PART_Indicator" Fill="Blue"/>
                </Grid>
            </Border>

            <ControlTemplate.Triggers>
            <Trigger Property="Orientation" Value="Vertical">//Error Here

                <!-- Rotate the progressbar so the left edge is the bottom edge -->
                <Setter TargetName="Root" Property="LayoutTransform">
                    <Setter.Value>
                        <RotateTransform Angle="270" />
                    </Setter.Value>
                </Setter>

                <Setter TargetName="Root" Property="Width"
                Value="{Binding RelativeSource={RelativeSource TemplatedParent}, 
Path=Height}"/>
                <Setter TargetName="Root" Property="Height"
                Value="{Binding RelativeSource={RelativeSource TemplatedParent}, 
Path=Width}"/>
            </Trigger>
        </ControlTemplate.Triggers>
    </ControlTemplate>

    </ProgressBar.Template>
</ProgressBar>

我得到的错误是在<Trigger Property="Orientation" Value="Vertical">行,我正在接受;

  

在“System.Windows.Controls.Control”类型上找不到模板属性“Orientation”。

2 个答案:

答案 0 :(得分:6)

设置TargetType的{​​{1}}。

答案 1 :(得分:2)

<ControlTemplate TargetType="ProgressBar">

 <Trigger Property="ProgressBar.Orientation" Value="Vertical">