Microsoft Player Framework有一个OnIsInteractiveChanged事件,因此我们可以确定是否正在显示控件。我似乎无法为MediaPlayerElement找到类似的事件。是否存在类似的事件,当控件可见时会被触发?
答案 0 :(得分:0)
是否存在类似的事件,当控件可见时会被触发?
目前,没有此类事件可确定是否正在显示控件。它只提供了一种使用一个新属性ShowAndHideAutomatically
和两个新方法Show()
和Hide()
来管理此方法的简单方法。
如果您确实需要此功能,可以自定义MediaTransportControls
并创建计时器以确定正在显示控件。
您将找到ControlPanelFadeIn
故事板以使控件淡入。如果控制面板淡入,ControlPanel_ControlPanelVisibilityStates_Border
不透明度将变为0。
你可以创建一个计时器来确定这个值。
public sealed class CustomMediaTransportControls : MediaTransportControls
{
private DispatcherTimer KeepTransportControlsVisibleTimer;
private Border ControlPanelGrid;
public CustomMediaTransportControls()
{
this.DefaultStyleKey = typeof(CustomMediaTransportControls);
KeepTransportControlsVisibleTimer = new DispatcherTimer();
KeepTransportControlsVisibleTimer.Interval = TimeSpan.FromMilliseconds(200);
KeepTransportControlsVisibleTimer.Tick += KeepTransportControlsVisibleTimer_Tick;
KeepTransportControlsVisibleTimer.Start();
}
private void KeepTransportControlsVisibleTimer_Tick(object sender, object e)
{
var opacity = ControlPanelGrid.Opacity;
System.Diagnostics.Debug.WriteLine(opacity);
// do some stuff
}
//overriding OnApplyTemplate
protected override void OnApplyTemplate()
{
ControlPanelGrid = GetTemplateChild("ControlPanel_ControlPanelVisibilityStates_Border") as Border;
base.OnApplyTemplate();
}
}
要创建自定义传输控件,请检查this。