您可以找到默认的MediaTransportControls样式here,其中还包含进度条的完整样式代码。
MediaTransportControls 由多个控件组成。进度条主要由Slider和Thumb组成,但不暴露ThumbFocus这样的状态,只暴露PointerOver、Pressed等常规状态。
在默认代码中,我们可以通过修改HorizontalThumb的Width/Height来改变拇指的大小:
...
<!-- Default width / height are 24 -->
<Thumb x:Name="HorizontalThumb"
Style="{StaticResource SliderThumbStyle}"
Height="10"
Width="10"
Grid.Row="0"
Grid.RowSpan="3"
Grid.Column="1"
FocusVisualMargin="-14,-6,-14,-6"
AutomationProperties.AccessibilityView="Raw">
...
然后在PointerOver状态和Pressed状态改变拇指大小:
<VisualState x:Name="Pressed">
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="HorizontalThumb" Storyboard.TargetProperty="Width">
<DiscreteObjectKeyFrame KeyTime="0" Value="24" />
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="HorizontalThumb" Storyboard.TargetProperty="Height">
<DiscreteObjectKeyFrame KeyTime="0" Value="24" />
</ObjectAnimationUsingKeyFrames>
...
</Storyboard>
</VisualState>
在键盘和鼠标模式下效果很好,但是如果通过切换焦点选中控件就不会生效。
如果这个效果很重要,你可能需要重写Slider并在获得焦点时创建事件。
最好的问候。