Заполните ползунок по мере его продвижения - PullRequest
1 голос
/ 26 января 2011

У меня есть горизонтальный ползунок, который я хочу залить треком определенным цветом по мере его продвижения вправо.

Я смотрю на реализацию по умолчанию (соответствующая часть ниже):

        <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", скажем, Red, так как он тикает. Но я не могу найти подходящее свойство для использования в качестве триггера.

1 Ответ

4 голосов
/ 26 января 2011

Если вы пытаетесь сделать часть ползунка слева от большого пальца красной, то вам просто нужно заменить стиль Track.DecreaseRepeatButton, чтобы он всегда был красным. Нет необходимости в триггерах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...