簡體   English   中英

C#UWP MediaPlayerElement交互模式事件?

[英]C# UWP MediaPlayerElement Interactive Mode Event?

Microsoft Player框架有一個OnIsInteractiveChanged事件,因此我們可以確定是否顯示控件。 我似乎找不到MediaPlayerElement的類似事件。 控件可見時是否會觸發類似事件?

控件可見時是否會觸發類似事件?

當前,尚無此類事件來確定控件是否正在顯示。 它僅通過一種新屬性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();  
    }
}

要創建自定義運輸控件,請檢查

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM