void SetClose(PrimaryPlayerDisplayMode currentMode) { if (_view.ViewMode == ApplicationViewMode.CompactOverlay) { _ = _view.TryEnterViewModeAsync(ApplicationViewMode.Default); } if (_view.IsFullScreenMode && ApplicationView.PreferredLaunchWindowingMode != ApplicationViewWindowingMode.FullScreen) { //_view.ExitFullScreenMode(); } _navigationService.NavigateAsync(nameof(BlankPage)); }
private async void EnterMiniMode_Button_Click(object sender, RoutedEventArgs e) { ViewModePreferences preferences = ViewModePreferences.CreateDefault(ApplicationViewMode.CompactOverlay); preferences.CustomSize = new Size(500, 500); preferences.ViewSizePreference = ViewSizePreference.Custom; bool modeSwitched = await _currentView.TryEnterViewModeAsync(ApplicationViewMode.CompactOverlay, preferences); if (!modeSwitched) { throw new Exception("Can not enter Mini Mode"); } _viewModel.IsMiniMode = true; }
private async void CompactOverlayButton_Click(object sender, RoutedEventArgs e) { ApplicationView applicationView = ApplicationView.GetForCurrentView(); if (await applicationView.TryEnterViewModeAsync(ApplicationViewMode.CompactOverlay)) { SetControlVisibility(Visibility.Collapsed); MyCanvas.Margin = new Thickness(32); } }
private async void ShowCompactButton_Click(object sender, RoutedEventArgs e) { if (LyricsView != null) { return; } var mainWindow = CoreWindow.GetForCurrentThread(); var mainViewId = ApplicationView.GetApplicationViewIdForWindow(mainWindow); #region Create a new View ,named LyricsView var currentView = CoreApplication.CreateNewView(); await currentView.Dispatcher.TryRunAsync(CoreDispatcherPriority.Normal, async() => { LyricsView = ApplicationView.GetForCurrentView(); LyricsView.Consolidated += LyricsView_Consolidated; #region Set the content of Window in LyricsView var rootContainer = new Grid() { Background = new SolidColorBrush() { Color = Colors.Black } }; var lyricTextBlock = new TextBlock() { Foreground = new SolidColorBrush() { Color = Colors.White }, Text = "I'm lyrics window.", HorizontalAlignment = HorizontalAlignment.Center, VerticalAlignment = VerticalAlignment.Center, FontSize = 20 }; rootContainer.Children.Add(lyricTextBlock); Window.Current.Content = rootContainer; Window.Current.Activate(); #endregion #region Show the LyricsView as standalone var currentWindow = CoreWindow.GetForCurrentThread(); var viewId = ApplicationView.GetApplicationViewIdForWindow(currentWindow); var viewShown = await ApplicationViewSwitcher.TryShowAsStandaloneAsync(viewId, ViewSizePreference.Default, mainViewId, ViewSizePreference.Default); #endregion #region Set the LyricsView as CompactOverlay mode await LyricsView.TryEnterViewModeAsync(ApplicationViewMode.CompactOverlay); #endregion }); #endregion }
private void ToggleFullScreenWhenApplicationViewShowWithStandalone() { CurrentViewScheduler.Schedule(() => { ApplicationView currentView = Windows.UI.ViewManagement.ApplicationView.GetForCurrentView(); if (Services.Helpers.DeviceTypeHelper.IsMobile || Services.Helpers.DeviceTypeHelper.IsDesktop) { if (NowPlaying) { if (IsPlayerSmallWindowModeEnabled) { if (currentView.IsFullScreenMode) { currentView.ExitFullScreenMode(); } } else if (currentView.AdjacentToLeftDisplayEdge && currentView.AdjacentToRightDisplayEdge) { currentView.TryEnterFullScreenMode(); } } else { // プレイヤーを閉じた時にCompactOverlayも解除する if (ApiInformation.IsApiContractPresent("Windows.Foundation.UniversalApiContract", 4)) { if (currentView.IsViewModeSupported(ApplicationViewMode.CompactOverlay) && currentView.ViewMode == ApplicationViewMode.CompactOverlay) { _ = currentView.TryEnterViewModeAsync(ApplicationViewMode.Default); } } if (!IsPlayerSmallWindowModeEnabled) { if (IsPlayerShowWithPrimaryView && IsMainView) { if (ApplicationView.PreferredLaunchWindowingMode != ApplicationViewWindowingMode.FullScreen) { currentView.ExitFullScreenMode(); } } } } } }); }
private async void OnKeyDown(object sender, KeyRoutedEventArgs e) { ApplicationView applicationView = ApplicationView.GetForCurrentView(); if (e.Key == Windows.System.VirtualKey.Escape && applicationView.IsFullScreenMode) { applicationView.ExitFullScreenMode(); } else if (e.Key == Windows.System.VirtualKey.Escape && applicationView.ViewMode == ApplicationViewMode.CompactOverlay) { MyCanvas.Margin = new Thickness(-16, -8, -16, -8); await applicationView.TryEnterViewModeAsync(ApplicationViewMode.Default); } else if (e.Key == Windows.System.VirtualKey.Space) { TogglePlaying(); } }
public WindowService(IScheduler scheduler) { _scheduler = scheduler; _applicationView = ApplicationView.GetForCurrentView(); IsFullScreen = new ReactiveProperty <bool>(_scheduler, _applicationView.IsFullScreenMode, ReactivePropertyMode.DistinctUntilChanged); IsFullScreen .Subscribe(isFullScreen => { IsCompactOverlay.Value = false; if (isFullScreen) { if (!_applicationView.TryEnterFullScreenMode()) { IsFullScreen.Value = false; } } else { _applicationView.ExitFullScreenMode(); } }) .AddTo(_disposables); if (ApiInformation.IsApiContractPresent("Windows.Foundation.UniversalApiContract", 4)) { IsCompactOverlay = new ReactiveProperty <bool>(_scheduler, _applicationView.ViewMode == ApplicationViewMode.CompactOverlay ); // This device supports all APIs in UniversalApiContract version 2.0 IsCompactOverlay .Subscribe(async isCompactOverlay => { if (_applicationView.IsViewModeSupported(ApplicationViewMode.CompactOverlay)) { if (isCompactOverlay) { ViewModePreferences compactOptions = ViewModePreferences.CreateDefault(ApplicationViewMode.CompactOverlay); compactOptions.CustomSize = new Windows.Foundation.Size(500, 280); var result = await _applicationView.TryEnterViewModeAsync(ApplicationViewMode.CompactOverlay, compactOptions); if (result) { _applicationView.TitleBar.ButtonBackgroundColor = Colors.Transparent; _applicationView.TitleBar.ButtonInactiveBackgroundColor = Colors.Transparent; } } else { var result = await _applicationView.TryEnterViewModeAsync(ApplicationViewMode.Default); } } }) .AddTo(_disposables); } else { IsCompactOverlay = new ReactiveProperty <bool>(_scheduler, false); } }