我使用此解决方案更改了MediaElement的MediaTransportControls的背景和前景颜色UWP custom media controls not working
现在我想
-
更改 'TimeRemainingElement' 的位置并将其放在Slider的左侧 .
-
使时间显示为 00:00 而不是0:00:00
有可能吗?知道怎么做吗?
- 1个问题:是否可以从MediaTransportControls中删除 "Cast to Device" 图标/选项?
我使用此解决方案更改了MediaElement的MediaTransportControls的背景和前景颜色UWP custom media controls not working
现在我想
更改 'TimeRemainingElement' 的位置并将其放在Slider的左侧 .
使时间显示为 00:00 而不是0:00:00
有可能吗?知道怎么做吗?
1 回答
是的,这是可能的 . 正如我在UWP custom media controls not working的前一个回答中提到的,我们可以编辑MediaTransportControls styles and templates以实现您想要的效果 .
TimeRemainingElement
位于Grid
,名为 "TimeTextGrid" ,位于Grid
的第二行,名为 "MediaTransportControls_Timeline_Grid" . 名为 "ProgressSlider" 的Slider
位于第一行 . 因此,要将TimeRemainingElement
放在Slider的左侧,我们可以在第一行添加Grid
,然后将TimeRemainingElement
和ProgressSlider
删除到新网格的不同列,如:并将
Visibility
的Visibility
设置为Collapsed
,如:这里我们无法删除
TimeTextGrid
. 缺少TimeTextGrid
会导致异常是某些情况 .更改已用时间和剩余时间的格式并不容易 . 它们是在代码隐藏中设置的,只是编辑
TimeElapsedElement
或TimeRemainingElement
的属性't work. And I'我不知道为什么你需要它们显示为"00:00" . 如果媒体's duration is large than one hour? How to show a time that is 2764462 ? I' d建议你只使用原始格式,但如果你想显示它像"00:00",这是一个解决方法:首先,我们需要创建一个格式转换器来转换时间格式,如下所示:
然后,当
TimeElapsedElement
和TimeRemainingElement
的Text
在代码隐藏中设置时,我们不能直接在TimeElapsedElement
和TimeRemainingElement
中使用TimeSpanFormatConverter
. 所以我添加两个TextBlock
并将它们的Text
属性绑定到TimeElapsedElement
和TimeRemainingElement
的Text
并在我的新TextBlock
中使用TimeSpanFormatConverter
:StaticResource TimeSpanFormatConverter
定义为在此之后,我可以隐藏
TimeTextGrid
并在MyGrid
中使用我的TextBlock
:要从MediaTransportControls中删除"Cast to Device"图标/选项,我们只需删除 "MediaControlsCommandBar" 中名为 "CastButton" 的
AppBarButton
:最后,在这些更改之后,
MediaTransportControls
将如下所示: