2017-12-21 11 views
0

터치 스크린 키오스크에서 전체 화면 모드로 실행되는 앱이 있습니다. 내 MainPage의 루프에서 Youtube의 비디오를 재생하는 MediaPlayerElement가 있습니다.전체 화면 모드로 실행되는 UWP C# app는 비디오 전체 화면을보고 나서 창 모드로 전환합니다.

사용자가 동영상의 전체 화면 재생으로 전환 한 다음 MainPage로 돌아갈 수 있기를 바랍니다. TransportControls를 활성화하면 전체 화면 비디오 재생이 제대로 작동하지만 전체 화면을 종료하면 전체 응용 프로그램이 창 모드로 전환됩니다.

페이지의 SizeChanged 이벤트를 구독하지 않고 창 모드를 감지하면 전체 화면으로 다시 전환하지 않고이 동작을 변경할 수 있습니까?

+0

왜'SizeChanged' 가입? 그것은 효과가 있었다. –

답변

1

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

+0

내 MediaPlayerElement가 UserControl 내부에 있기 때문에 약간 다르게 구현해야했지만 완벽하게 작동했습니다! 감사합니다 @cloudikka! – captainserial

+0

@captainserial : 천만에. 기꺼이 도와 드리겠습니다! – cloudikka

관련 문제