滑块控件随着时间的推移填充

时间:2011-01-26 01:33:12

标签: wpf slider

我有一个水平滑块控件,我希望在向右移动时用某种颜色填充轨迹。

我正在查看默认实现(下面的相关部分):

        <ControlTemplate x:Key="HorizontalSlider" TargetType="{x:Type Slider}">
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="Auto"/>
                <RowDefinition Height="Auto" MinHeight="{TemplateBinding Slider.MinHeight}"/>
                <RowDefinition Height="Auto"/>
            </Grid.RowDefinitions>
            <TickBar Name="TopTick" SnapsToDevicePixels="True" Placement="Top" Fill="{StaticResource GlyphBrush}"
                    Height="4" Visibility="Collapsed" />
            <Border Name="TrackBackground" Margin="0" CornerRadius="2" Height="4" Grid.Row="1"
                    Background="{StaticResource LightBrush}" BorderBrush="{StaticResource NormalBorderBrush}"
                    BorderThickness="1" />
            <Track Grid.Row="1" Name="PART_Track">
                <Track.DecreaseRepeatButton>
                    <RepeatButton Style="{StaticResource SliderButtonStyle}"
                                  Command="Slider.DecreaseLarge" />
                </Track.DecreaseRepeatButton>
                <Track.Thumb>
                    <Thumb Style="{StaticResource SliderThumbStyle}" />
                </Track.Thumb>
                <Track.IncreaseRepeatButton>
                    <RepeatButton Style="{StaticResource SliderButtonStyle}" Command="Slider.IncreaseLarge" />
                </Track.IncreaseRepeatButton>
            </Track>
            <TickBar Name="BottomTick" SnapsToDevicePixels="True" Grid.Row="2" Fill="{TemplateBinding Foreground}"
                     Placement="Bottom" Height="4" Visibility="Collapsed" />
        </Grid>
        <ControlTemplate.Triggers>
            <Trigger Property="TickPlacement" Value="TopLeft">
                <Setter TargetName="TopTick" Property="Visibility" Value="Visible"/>
            </Trigger>
            <Trigger Property="TickPlacement" Value="BottomRight">
                <Setter TargetName="BottomTick" Property="Visibility" Value="Visible"/>
            </Trigger>
            <Trigger Property="TickPlacement" Value="Both">
                <Setter TargetName="TopTick" Property="Visibility" Value="Visible"/>
                <Setter TargetName="BottomTick" Property="Visibility" Value="Visible"/>
            </Trigger>
        </ControlTemplate.Triggers>
    </ControlTemplate>

并且还确定了我想要的东西 - 将名为“TrackBackground”的边框背景设置为红色,并将其设置为滴答。但我找不到合适的属性作为触发器。

1 个答案:

答案 0 :(得分:4)

如果您要做的是让拇指左侧滑块的一部分为红色,那么您只需要替换Track.DecreaseRepeatButton的样式,使其始终为红色。不需要触发器。