Example #1
0
        public MainPage()
        {
            InitializeComponent();

            _currentView = ApplicationView.GetForCurrentView();
            ButtonsInMultilineEditMode_StackPanel.Visibility = Visibility.Collapsed;

            _viewModel = DataContext as MainViewModel;
            _viewModel.LyricItems.CollectionChanged += LyricItems_CollectionChanged;
            _viewModel.SelectedItems = Lyrics_ListView.SelectedItems;
            _viewModel.UndoOperations.CollectionChanged += UndoOperations_CollectionChanged;
            _settings.PropertyChanged += Settings_PropertyChanged;

            GlobalKeyNotifier.KeyDown += WindowKeyDown;
            GlobalKeyNotifier.KeyUp   += WindowKeyUp;

            MusicFileNotifier.FileChangeRequested += MusicFileChangeRequested;
            ImageFileNotifier.FileChanged         += ImageFileChanged;

            if (!ApiInformation.IsTypePresent("Windows.UI.ViewManagement.ApplicationViewMode") ||
                !ApiInformation.IsEnumNamedValuePresent(typeof(ApplicationViewMode).FullName, "CompactOverlay") ||
                !_currentView.IsViewModeSupported(ApplicationViewMode.CompactOverlay))
            {
                MiniMode_StackPanel.Visibility = Visibility.Collapsed;
            }
        }
 void SetCompactOverlay(PrimaryPlayerDisplayMode currentMode)
 {
     if (_view.IsViewModeSupported(ApplicationViewMode.CompactOverlay))
     {
         if (_view.ViewMode == ApplicationViewMode.Default)
         {
             _ = _view.TryEnterViewModeAsync(ApplicationViewMode.Default);
         }
     }
 }
Example #3
0
        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();
                                }
                            }
                        }
                    }
                }
            });
        }
Example #4
0
 void SetCompactOverlay(PrimaryPlayerDisplayMode currentMode)
 {
     if (_view.IsViewModeSupported(ApplicationViewMode.CompactOverlay))
     {
         if (_view.ViewMode == ApplicationViewMode.Default)
         {
             var opt = ViewModePreferences.CreateDefault(ApplicationViewMode.CompactOverlay);
             opt.CustomSize = new Windows.Foundation.Size(500, 280);
             _ = _view.TryEnterViewModeAsync(ApplicationViewMode.CompactOverlay, opt);
         }
         else
         {
             _ = _view.TryEnterViewModeAsync(ApplicationViewMode.Default);
         }
     }
 }
Example #5
0
 public static bool IsCompactOverlaySupported(this ApplicationView view)
 {
     return(ApiInformation.IsMethodPresent("Windows.UI.ViewManagement.ApplicationView", "IsViewModeSupported") && view.IsViewModeSupported(ApplicationViewMode.CompactOverlay));
 }
Example #6
0
        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);
            }
        }