我有一个在全屏模式下在触摸屏信息亭上运行的应用程序。有一个MediaPlayerElement,可以在MainPage上循环播放来自YouTube的视频。
我希望用户能够切换到视频的全屏播放,然后返回到MainPage。如果启用了TransportControls,则全屏视频播放可以正常工作,但是退出全屏时,整个应用程序将切换到窗口模式。
是否有任何方法可以更改此行为而无需预订页面的SizeChanged事件,然后在检测到窗口模式时切换回全屏?
最佳答案
您正在寻找侦听MediaPlayerElement.IsFullWindowProperty上的更改的DependencyObject.RegisterPropertyChangedCallback方法。
long token;
protected override void OnNavigatedTo(NavigationEventArgs e)
{
token = mediaPlayer.RegisterPropertyChangedCallback(MediaPlayerElement.IsFullWindowProperty, OnMediaPlayerFullWindowChanged);
base.OnNavigatedTo(e);
}
protected override void OnNavigatedFrom(NavigationEventArgs e)
{
mediaPlayer.UnregisterPropertyChangedCallback(MediaPlayerElement.IsFullWindowProperty, token);
}
然后,您想要实现回调方法,该方法将处理切换回全屏的情况。
private void OnMediaPlayerFullWindowChanged(DependencyObject sender, DependencyProperty dp)
{
MediaPlayerElement mpe = (MediaPlayerElement)sender;
if (mpe != null && dp == MediaPlayerElement.IsFullWindowProperty && !mpe.IsFullWindow)
{
ApplicationView.GetForCurrentView().TryEnterFullScreenMode();
}
}
相关资源:
MediaPlayerElement Class example implementing RegisterPropertyChangedCallback
UWP Windows 10 App, Windows startup size and full screen
关于c# - 查看全屏视频后,以全屏模式运行的UWP C#应用程序切换到窗口模式,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/47916069/