Wpf 如何始终显示滑块在拇指上的当前位置

Wpf 如何始终显示滑块在拇指上的当前位置,wpf,slider,tooltip,alwayson,Wpf,Slider,Tooltip,Alwayson,如何在滑块控件移动时,在拇指下方显示工具提示/标签,并始终显示值(timespan),同时使用/不使用用户拖动 我在滑块上尝试了AutoToolTipPlacement=“BottomRight”AutoToolTipPrecision=“3”。 但工具提示仅在我拖动拇指时显示。我希望即使在我用按钮控件调用播放滑块时也能显示出来 关键是要减小我的usercontrol的大小,避免为计时器或位置添加额外的标签 如果我走错了方向,请给我一些更好的建议。谢谢 您可以重新设置拇指的样式以显示此效果。下面

如何在滑块控件移动时,在拇指下方显示工具提示/标签,并始终显示值(timespan),同时使用/不使用用户拖动

我在滑块上尝试了AutoToolTipPlacement=“BottomRight”AutoToolTipPrecision=“3”。 但工具提示仅在我拖动拇指时显示。我希望即使在我用按钮控件调用播放滑块时也能显示出来

关键是要减小我的usercontrol的大小,避免为计时器或位置添加额外的标签


如果我走错了方向,请给我一些更好的建议。谢谢

您可以重新设置
拇指的样式以显示此效果。下面是一个示例,它制作了一个圆形
拇指
,其父
滑块
属性显示在圆圈内

<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>

您尝试执行的操作可能需要覆盖滑块的控制模板。你有你想要它看起来像什么的图像吗?好吧,我没有图像,当你播放完广告后,在这个视频控制中仍然是这样:(请看滑块,时间正好在拇指上)谢谢鲍勃。我试过你提到的造型。似乎有效。唯一的缺点是当我尝试用拇指显示整个时间跨度(例如:01:05:44:233)时,它看起来有点难看,基本上挡住了轨道。因此,我想我必须放弃显示为拇指的想法,将其作为标签/文本块分别放在滑块下方。
                    <Grid>
                        <Grid.RowDefinitions>
                            <RowDefinition Height="20"/>
                            <RowDefinition Height="20"/>
                        </Grid.RowDefinitions>
                        <Ellipse x:Name="Background" 
                            Fill="#FFA3A3A3"
                            Height="20" Width="20"
                            Stroke="#FFDADADA"/>
                        <TextBlock Grid.Row="1" HorizontalAlignment="Center"
                            VerticalAlignment="Center"
                            Foreground="White"
                            FontSize="9"
                            Text="{Binding Value, RelativeSource={RelativeSource AncestorType={x:Type Slider}}, Converter={StaticResource ConvertToIntegerConverter}}"/>
                    </Grid>