未验证 提交 03c86c15 编写于 作者: J Jérôme Laban 提交者: GitHub

Merge pull request #12500 from unoplatform/dev/ramr/MediaPlayerHideNotImplemented

Update validation for unimplemented icon
......@@ -14,12 +14,15 @@ using Uno.Disposables;
using System.Diagnostics.CodeAnalysis;
using System.Globalization;
using Uno.Extensions;
using Windows.Foundation.Metadata;
#if HAS_UNO_WINUI
using Microsoft.UI.Input;
using PointerDeviceType = Microsoft.UI.Input.PointerDeviceType;
#else
using PointerDeviceType = Windows.Devices.Input.PointerDeviceType;
using System.Reflection.Emit;
using System.Reflection;
#endif
......@@ -951,8 +954,6 @@ namespace Windows.UI.Xaml.Controls
}
private void UpdateMediaControlAllStates()
{
UpdateMediaControlState(IsCompactProperty);
UpdateMediaControlState(IsFullWindowButtonVisibleProperty);
UpdateMediaControlState(IsZoomButtonVisibleProperty);
UpdateMediaControlState(IsSeekBarVisibleProperty);
......@@ -981,6 +982,7 @@ namespace Windows.UI.Xaml.Controls
UpdateMediaControlState(IsCompactOverlayButtonVisibleProperty);
UpdateMediaControlState(IsCompactOverlayEnabledProperty);
}
private void UpdateMediaControlState(DependencyProperty property)
{
switch (property)
......@@ -994,7 +996,7 @@ namespace Windows.UI.Xaml.Controls
break;
case var _ when property == IsRepeatButtonVisibleProperty:
BindVisibility(m_tpRepeatButton, IsRepeatButtonVisible);
BindVisibility(m_tpRepeatButton, IsImplemented(typeof(Windows.Media.Playback.MediaPlayer), "IsLoopingEnabled") && IsRepeatButtonVisible);
break;
case var _ when property == IsRepeatEnabledProperty:
BindIsEnabled(m_tpRepeatButton, IsRepeatEnabled);
......@@ -1018,7 +1020,7 @@ namespace Windows.UI.Xaml.Controls
BindIsEnabled(m_tpZoomButton, IsZoomEnabled);
break;
case var _ when property == IsPlaybackRateButtonVisibleProperty:
BindVisibility(m_tpPlaybackRateButton, IsPlaybackRateButtonVisible);
BindVisibility(m_tpPlaybackRateButton, IsImplemented(typeof(Windows.Media.Playback.MediaPlayer), "PlaybackRate") && IsPlaybackRateButtonVisible);
break;
case var _ when property == IsPlaybackRateEnabledProperty:
BindIsEnabled(m_tpPlaybackRateButton, IsPlaybackRateEnabled);
......@@ -1100,6 +1102,11 @@ namespace Windows.UI.Xaml.Controls
}
}
private bool IsImplemented(Type type, string property)
{
return ApiInformation.IsPropertyPresent(type.FullName + "", property);
}
// visual states
private void UpdateAllVisualStates(bool useTransition = true)
{
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册