Есть ли способ зафиксировать пользователя, нажимающего кнопку «развернуть» в приложении UWP? - PullRequest
0 голосов
/ 03 декабря 2018

Я пытаюсь найти чистый способ перевести мое приложение в полноэкранный режим (в отличие от максимизированного режима), когда пользователь нажимает кнопку максимизации.Проблема в том, что я не могу найти ни одного события, чтобы определить, когда нажимается кнопка максимизации.

Причина, по которой я задаю этот вопрос, заключается в том, что у меня есть игра UWP, которая работает в FullScreenMode.Однако, если пользователь хочет переключить его в оконный режим, он может.Если они хотят снова вернуться в полноэкранный режим, я не могу сказать, что они пытаются это сделать.

Я мог бы добавить кнопку в игру, но это выглядит довольно глупо.

Ответы [ 2 ]

0 голосов
/ 17 декабря 2018

В моем случае я пытаюсь перевести окно в полноэкранный режим, когда пользователь нажимает кнопку максимизации.Ваше решение обеспечивает это, но побочным эффектом является то, что окно никогда не может быть выведено из полноэкранного режима.Как только вы нажимаете кнопку оконного режима, окно переходит из полноэкранного режима в оконный, но размер по-прежнему занимает весь экран, вызывая код для повторного входа в полноэкранный режим.

@ Пол Муше Нет встроенных API для вас.Это Запрос на добавление .Я помог вам отправить его на WPDev UserVoice .

0 голосов
/ 03 декабря 2018

Нет определенного события для определения кнопки максимизации.Но вы можете найти его, используя событие sizechanged для вашей страницы или фрейма.Затем используйте ApplicationView.GetForCurrentView (). IsFullScreen, чтобы определить, развернуто ли окно.

Редактировать: использовать IsFullScreenMode вместо IsFullScreen .IsFullScreen проверяет только, касается ли окно левой и правой сторон дисплея.

  public MainPage()
    {

        this.InitializeComponent();
        YourPage.SizeChanged += YourPage_SizeChanged;
    }

    private  void YourPage_SizeChanged(object sender, SizeChangedEventArgs e)
    {
        if (ApplicationView.GetForCurrentView().IsFullScreenMode)
        {
            WindowButton.Visibility = Visibility.Visible;
            FullScreenButton.Visibility = Visibility.Collapsed;
        }
        else
        {
            FullScreenButton.Visibility = Visibility.Visible;
            WindowButton.Visibility = Visibility.Collapsed;
        }
    }
    private void WindowButton_Click(object sender, RoutedEventArgs e)
    {
        ApplicationView.GetForCurrentView().ExitFullScreenMode();
    }

    private void FullScreenButton_Click(object sender, RoutedEventArgs e)
    {
        ApplicationView.GetForCurrentView().TryEnterFullScreenMode();
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...