WPF Slider样式,带颜色填充与值提示

6 篇文章 0 订阅
3 篇文章 0 订阅

 样式如下:

 

主要是下面标色的代码部分做修改,其它为标准模板(喜欢的点个赞)

<!--Slider-->
    <SolidColorBrush x:Key="SliderThumb.DecreaseColor" Color="#FF5258DC"/>
    <Style x:Key="FlatSilderStyle1" TargetType="{x:Type Slider}">
        <Setter Property="Background" Value="Transparent"/>
        <Setter Property="BorderBrush" Value="Transparent"/>
        <Setter Property="Foreground" Value="#FFE5E5E5"/>
        <Setter Property="VerticalAlignment" Value="Center"/>
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type Slider}">
                    <Border x:Name="border" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" Padding="{TemplateBinding Padding}" SnapsToDevicePixels="True">
                        <Grid>
                            <Grid.ColumnDefinitions>
                                <ColumnDefinition Width="*"/>
                                <ColumnDefinition Width="Auto"/>
                            </Grid.ColumnDefinitions>
                            <Grid Grid.Column="0">
                                <Grid.RowDefinitions>
                                    <RowDefinition Height="Auto"/>
                                    <RowDefinition Height="Auto" MinHeight="{TemplateBinding MinHeight}"/>
                                    <RowDefinition Height="Auto"/>
                                </Grid.RowDefinitions>
                                <TickBar x:Name="TopTick" Fill="{TemplateBinding Foreground}" Height="4" Margin="0,0,0,2" Placement="Top" Grid.Row="0" Visibility="Collapsed"/>
                                <Border x:Name="TrackBackground" BorderBrush="#FFD6D6D6" BorderThickness="1" Background="#FFE7EAEA" Height="3" Margin="5,0" Grid.Row="1" VerticalAlignment="Center">
                                    <Canvas Margin="-6,-1">
                                        <Rectangle x:Name="PART_SelectionRange" Fill="{DynamicResource {x:Static SystemColors.HighlightBrushKey}}" Height="3" Visibility="Hidden"/>
                                    </Canvas>
                                </Border>
                                <Track x:Name="PART_Track" Grid.Row="1">
                                    <Track.DecreaseRepeatButton>
                                        <RepeatButton Command="Slider.DecreaseLarge">
                                            <RepeatButton.Style>
                                                <Style TargetType="{x:Type RepeatButton}">
                                                    <Setter Property="OverridesDefaultStyle" Value="True"/>
                                                    <Setter Property="Background" Value="{StaticResource SliderThumb.DecreaseColor}"/>
                                                    <Setter Property="Focusable" Value="False"/>
                                                    <Setter Property="IsTabStop" Value="False"/>
                                                    <Setter Property="Height" Value="3"/>
                                                    <Setter Property="Template">
                                                        <Setter.Value>
                                                            <ControlTemplate TargetType="{x:Type RepeatButton}">
                                                                <Rectangle Fill="{TemplateBinding Background}" Height="{TemplateBinding Height}" Width="{TemplateBinding Width}"/>
                                                            </ControlTemplate>
                                                        </Setter.Value>
                                                    </Setter>
                                                </Style>
                                            </RepeatButton.Style>
                                        </RepeatButton>
                                    </Track.DecreaseRepeatButton>
                                    <Track.IncreaseRepeatButton>
                                        <RepeatButton  Command="Slider.IncreaseLarge">
                                            <RepeatButton.Style>
                                                <Style TargetType="{x:Type RepeatButton}">
                                                    <Setter Property="OverridesDefaultStyle" Value="True"/>
                                                    <!--<Setter Property="Background" Value="{TemplateBinding  BorderBrush}"/>-->
                                                    <Setter Property="Focusable" Value="False"/>
                                                    <Setter Property="IsTabStop" Value="False"/>
                                                    <Setter Property="Height" Value="3"/>
                                                    <Setter Property="Template">
                                                        <Setter.Value>
                                                            <ControlTemplate TargetType="{x:Type RepeatButton}">
                                                                <Rectangle Fill="{TemplateBinding Background}" Height="{TemplateBinding Height}" Width="{TemplateBinding Width}"/>
                                                            </ControlTemplate>
                                                        </Setter.Value>
                                                    </Setter>
                                                </Style>
                                            </RepeatButton.Style>
                                        </RepeatButton>
                                    </Track.IncreaseRepeatButton>
                                    <Track.Thumb>
                                        <Thumb x:Name="PART_Thumb" Tag="5"  Focusable="False" HorizontalAlignment="Left" OverridesDefaultStyle="True" VerticalAlignment="Center">
                                            <Thumb.Template>
                                                <ControlTemplate TargetType="{x:Type Thumb}">
                                                    <Grid HorizontalAlignment="Center" UseLayoutRounding="True" VerticalAlignment="Center" Margin="-6,0,0,0">
                                                        <Grid.RowDefinitions>
                                                            <RowDefinition Height="Auto"/>
                                                            <RowDefinition Height="Auto"/>
                                                        </Grid.RowDefinitions>
                                                        <Ellipse x:Name="shadow" Fill="{StaticResource SliderThumb.DecreaseColor}" Height="25" Margin="-12" Opacity="0" Grid.Row="1" Width="25"/>
                                                        <Ellipse x:Name="grip" Fill="{StaticResource SliderThumb.DecreaseColor}" Height="13" Grid.Row="1" Width="13"/>

                                                        <TextBlock x:Name="ToolipText" Text="{Binding Value,RelativeSource={RelativeSource FindAncestor, AncestorLevel=1,AncestorType={x:Type Slider}}}"  Margin="0,-20,0,0" Foreground="{StaticResource SliderThumb.DecreaseColor}" Visibility="Hidden" HorizontalAlignment="Center"/>
                                                    </Grid>
                                                    <ControlTemplate.Triggers>
                                                        <Trigger Property="IsMouseOver" Value="True">
                                                            <Trigger.EnterActions>
                                                                <BeginStoryboard>
                                                                    <Storyboard>
                                                                        <DoubleAnimation Duration="0:0:0.2" To="0.26" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="shadow"/>
                                                                    </Storyboard>
                                                                </BeginStoryboard>
                                                            </Trigger.EnterActions>
                                                            <Trigger.ExitActions>
                                                                <BeginStoryboard>
                                                                    <Storyboard>
                                                                        <DoubleAnimation Duration="0:0:0.2" To="0" Storyboard.TargetProperty="Opacity" Storyboard.TargetName="shadow"/>
                                                                    </Storyboard>
                                                                </BeginStoryboard>
                                                            </Trigger.ExitActions>
                                                            <Setter Property="Visibility" TargetName="ToolipText" Value="Visible"/>

                                                        </Trigger>
                                                        <Trigger Property="IsDragging" Value="True"/>
                                                        <Trigger Property="IsEnabled" Value="False">
                                                            <Setter Property="Fill" TargetName="grip" Value="#FFF0F0F0"/>
                                                            <Setter Property="Stroke" TargetName="grip" Value="#FFD9D9D9"/>
                                                        </Trigger>
                                                    </ControlTemplate.Triggers>
                                                </ControlTemplate>
                                            </Thumb.Template>
                                        </Thumb>
                                    </Track.Thumb>
                                </Track>
                                <TickBar x:Name="BottomTick" Fill="{TemplateBinding Foreground}" Height="4" Margin="0,2,0,0" Placement="Bottom" Grid.Row="2" Visibility="Collapsed"/>
                            </Grid>
                        </Grid>
                    </Border>
                    <ControlTemplate.Triggers>
                        <Trigger Property="TickPlacement" Value="TopLeft">
                            <Setter Property="Visibility" TargetName="TopTick" Value="Visible"/>
                            <Setter Property="Template" TargetName="PART_Thumb">
                                <Setter.Value>
                                    <ControlTemplate TargetType="{x:Type Thumb}">
                                        <Grid HorizontalAlignment="Center" UseLayoutRounding="True" VerticalAlignment="Center">
                                            <Path x:Name="grip" Data="M0,6C0,6 5.5,0 5.5,0 5.5,0 11,6 11,6 11,6 11,18 11,18 11,18 0,18 0,18 0,18 0,6 0,6z" Fill="#FFF0F0F0" Stretch="Fill" SnapsToDevicePixels="True" Stroke="#FFACACAC" StrokeThickness="1" UseLayoutRounding="True" VerticalAlignment="Center"/>
                                        </Grid>
                                        <ControlTemplate.Triggers>
                                            <Trigger Property="IsMouseOver" Value="True">
                                                <Setter Property="Fill" TargetName="grip" Value="#00DCECFC"/>
                                                <Setter Property="Stroke" TargetName="grip" Value="#FF7EB4EA"/>
                                            </Trigger>
                                            <Trigger Property="IsDragging" Value="True">
                                                <Setter Property="Fill" TargetName="grip" Value="#FFDAECFC"/>
                                                <Setter Property="Stroke" TargetName="grip" Value="#FF569DE5"/>
                                            </Trigger>
                                            <Trigger Property="IsEnabled" Value="False">
                                                <Setter Property="Fill" TargetName="grip" Value="#FFF0F0F0"/>
                                                <Setter Property="Stroke" TargetName="grip" Value="#FFD9D9D9"/>
                                            </Trigger>
                                        </ControlTemplate.Triggers>
                                    </ControlTemplate>
                                </Setter.Value>
                            </Setter>
                            <Setter Property="Margin" TargetName="TrackBackground" Value="5,2,5,0"/>
                        </Trigger>
                        <Trigger Property="TickPlacement" Value="BottomRight">
                            <Setter Property="Visibility" TargetName="BottomTick" Value="Visible"/>
                            <Setter Property="Template" TargetName="PART_Thumb">
                                <Setter.Value>
                                    <ControlTemplate TargetType="{x:Type Thumb}">
                                        <Grid HorizontalAlignment="Center" UseLayoutRounding="True" VerticalAlignment="Center">
                                            <Path x:Name="grip" Data="M0,12C0,12 5.5,18 5.5,18 5.5,18 11,12 11,12 11,12 11,0 11,0 11,0 0,0 0,0 0,0 0,12 0,12z" Fill="#FFF0F0F0" Stretch="Fill" SnapsToDevicePixels="True" Stroke="#FFACACAC" StrokeThickness="1" UseLayoutRounding="True" VerticalAlignment="Center"/>
                                        </Grid>
                                        <ControlTemplate.Triggers>
                                            <Trigger Property="IsMouseOver" Value="True">
                                                <Setter Property="Fill" TargetName="grip" Value="#00DCECFC"/>
                                                <Setter Property="Stroke" TargetName="grip" Value="#FF7EB4EA"/>
                                            </Trigger>
                                            <Trigger Property="IsDragging" Value="True">
                                                <Setter Property="Fill" TargetName="grip" Value="#FFDAECFC"/>
                                                <Setter Property="Stroke" TargetName="grip" Value="#FF569DE5"/>
                                            </Trigger>
                                            <Trigger Property="IsEnabled" Value="False">
                                                <Setter Property="Fill" TargetName="grip" Value="#FFF0F0F0"/>
                                                <Setter Property="Stroke" TargetName="grip" Value="#FFD9D9D9"/>
                                            </Trigger>
                                        </ControlTemplate.Triggers>
                                    </ControlTemplate>
                                </Setter.Value>
                            </Setter>
                            <Setter Property="Margin" TargetName="TrackBackground" Value="5,0,5,2"/>
                        </Trigger>
                        <Trigger Property="TickPlacement" Value="Both">
                            <Setter Property="Visibility" TargetName="TopTick" Value="Visible"/>
                            <Setter Property="Visibility" TargetName="BottomTick" Value="Visible"/>
                        </Trigger>
                        <Trigger Property="IsSelectionRangeEnabled" Value="True">
                            <Setter Property="Visibility" TargetName="PART_SelectionRange" Value="Visible"/>
                        </Trigger>
                        <Trigger Property="IsKeyboardFocused" Value="True">
                            <Setter Property="Foreground" TargetName="PART_Thumb" Value="Blue"/>
                        </Trigger>
                    </ControlTemplate.Triggers>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
      

  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值