Windows phone 在FullWindows模式下,MediaElement的操作事件不会触发
当我将播放机设置为非全屏(player.IsFullWindows=false)时,事件正常工作,但将播放机更改为全屏时,所有操纵事件均不工作。有人有解决办法吗Windows phone 在FullWindows模式下,MediaElement的操作事件不会触发,windows-phone,winrt-xaml,win-universal-app,windows-10-universal,windows-10-mobile,Windows Phone,Winrt Xaml,Win Universal App,Windows 10 Universal,Windows 10 Mobile,当我将播放机设置为非全屏(player.IsFullWindows=false)时,事件正常工作,但将播放机更改为全屏时,所有操纵事件均不工作。有人有解决办法吗 <MediaElement Name="player" Margin="10,5" ManipulationCompleted="player_ManipulationCompleted"
<MediaElement Name="player"
Margin="10,5" ManipulationCompleted="player_ManipulationCompleted"
ManipulationDelta="Grid_ManipulationDelta"
ManipulationMode="TranslateX"
>
我可以通过同时启用IsFullWindow=“True”和AreTransportControlsEnabled=“True”来重现此场景。我认为这是有意义的,因为当我们处于全窗口模式时,它将转到名为FullWindowMediaRoot的新层,而不是MediaElement。在FullWindowMediaRoot中,它是MediaTransportControls。通过使用实时可视化树,您可以清楚地看到这一点,如下所示: 因此,当我们处于全窗口模式时,我们需要处理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)
{
}
谢谢。我可以通过同时启用IsFullWindow=“True”和AreTransportControlsEnabled=“True”来重现此场景。我认为这是有意义的,因为当我们处于全窗口模式时,它将转到名为FullWindowMediaRoot的新层,而不是MediaElement。在FullWindowMediaRoot中,它是MediaTransportControls。通过使用实时可视化树,您可以清楚地看到这一点,如下所示: 因此,当我们处于全窗口模式时,我们需要处理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)
{
}
谢谢。谢谢你的帮助,我还有一个问题:我在这里回答了:谢谢你的帮助,我还有一个问题:我在这里回答了: