【问题标题】:Manipulation events of MediaElement not fire when on FullWindows mode在 FullWindows 模式下不会触发 MediaElement 的操作事件
【发布时间】:2016-03-23 15:13:22
【问题描述】:

当我将播放器设置为不全屏时(player.IsFullWindows = false),事件正常工作,但当将播放器更改为全屏时,所有操作事件都不起作用。谁有解决方案?

                <MediaElement Name="player"
                              Margin="10,5" ManipulationCompleted="player_ManipulationCompleted"
                              ManipulationDelta="Grid_ManipulationDelta"
                              ManipulationMode="TranslateX"
                              >

【问题讨论】:

    标签: windows-phone winrt-xaml win-universal-app windows-10-universal windows-10-mobile


    【解决方案1】:

    我可以通过启用 IsFullWindow="True"AreTransportControlsEnabled="True" 来重现这种情况。我认为这是有道理的,因为当我们处于全窗口模式时,它将转到名为 FullWindowMediaRoot 的新层,而不是 MediaElement。在FullWindowMediaRoot里面,就是MediaTransportControl。您可以使用 Live Visual Tree 清楚地看到这一点,如下所示:

    所以当我们处于全窗口模式时,我们需要处理 TransportControls 的操作事件,而不是 MediaElement 的操作事件,如下所示:

    public MainPage()
        {
            this.InitializeComponent();
            player.TransportControls.ManipulationMode = ManipulationModes.TranslateX;
            player.TransportControls.ManipulationDelta += TransportControls_ManipulationDelta;
            player.TransportControls.ManipulationCompleted += TransportControls_ManipulationCompleted;
    
        }
    
        private void TransportControls_ManipulationCompleted(object sender, ManipulationCompletedRoutedEventArgs e)
        {
    
        }
    
        private void TransportControls_ManipulationDelta(object sender, ManipulationDeltaRoutedEventArgs e)
        {
    
        }
    

    谢谢。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-08-06
    • 2018-01-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多