如何在拇指下方显示工具提示/标签的滑块控件,在使用/不使用用户拖动的情况下显示值(时间跨度)。
我试过AutoToolTipPlacement =" BottomRight" AutoToolTipPrecision =" 3"在我的滑块上。 但只有在我拖动拇指时才会显示工具提示。即使我使用按钮控件调用播放滑块,我也希望显示它。(如视频播放器)
重点是减少用户控件的大小,避免为计时器或位置添加额外的标签。
如果我的方向错误,请向我提出更好的建议。谢谢!
答案 0 :(得分:12)
您可以重新设置Thumb
的样式以显示此效果。以下是一个示例,其中显示圆Thumb
,其父.Value
的{{1}}属性显示在圆圈内。
Slider
我使用了<Style TargetType="{x:Type Thumb}">
<Setter Property="Focusable" Value="false"/>
<Setter Property="OverridesDefaultStyle" Value="true"/>
<Setter Property="Height" Value="20"/>
<Setter Property="Width" Value="20"/>
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type Thumb}">
<Canvas SnapsToDevicePixels="true">
<Grid Height="20" Width="20">
<Ellipse x:Name="Background"
Fill="#FFA3A3A3"
Height="20" Width="20"
Stroke="#FFDADADA"/>
<TextBlock HorizontalAlignment="Center"
VerticalAlignment="Center"
Foreground="Black"
FontSize="9"
Text="{Binding Value, RelativeSource={RelativeSource AncestorType={x:Type Slider}}, Converter={StaticResource ConvertToIntegerConverter}}"/>
</Grid>
</Canvas>
<ControlTemplate.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="Fill" TargetName="Background"
Value="#FFDADADA"/>
</Trigger>
<Trigger Property="IsDragging" Value="true">
<Setter Property="Fill" TargetName="Background"
Value="#FFF2F2F2"/>
</Trigger>
<Trigger Property="IsEnabled" Value="false">
<Setter Property="Fill" TargetName="Background"
Value="#FFF2F2F2"/>
</Trigger>
</ControlTemplate.Triggers>
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
来确保显示的值始终是整数,因为正常的IValueConverter
属性是小数。您可能希望使用自己的转换器来正确格式化要显示的信息。
您可以通过重新设置.Value
的样式,使文字或数字显示在任意位置。
修改强>
如果您想在实际拇指上方或下方显示文字,那么它对样式的影响相当小:
Thumb