UWP Установить максимальный вид при запуске, кажется, не работает - PullRequest
1 голос
/ 31 октября 2019

Я попробовал все эти ответы, но ни один из них не сработал:

  1. https://stackoverflow.com/a/44273903/2901207 -> Просто ничего не делает, пытался поставить по-другомуместа, но в основном так же, как ответ. Нет ответаЭтот код:

    private void MaximizeWindowOnLoad()
    {
        var view = DisplayInformation.GetForCurrentView();
    
        // Get the screen resolution (APIs available from 14393 onward).
        var resolution = new Size(view.ScreenWidthInRawPixels, view.ScreenHeightInRawPixels);
    
        // Calculate the screen size in effective pixels. 
        // Note the height of the Windows Taskbar is ignored here since the app will only be given the maxium available size.
        var scale = view.ResolutionScale == ResolutionScale.Invalid ? 1 : view.RawPixelsPerViewPixel;
        var bounds = new Size(resolution.Width / scale, resolution.Height / scale);
        ApplicationView.GetForCurrentView().SetPreferredMinSize(bounds);
        ApplicationView.PreferredLaunchViewSize = new Size(bounds.Width, bounds.Height);
        ApplicationView.PreferredLaunchWindowingMode = ApplicationViewWindowingMode.PreferredLaunchViewSize;
    }
    

    Я пытался выполнить до и после this.InitializeComponent(); главной страницы. Я пытался сделать это в конструкторе App, но это выдает исключение для DisplayInformation.GetForCurrentView();. Я попытался сделать это сразу после создания кадра, но тоже не повезло.

  2. https://stackoverflow.com/a/35250107/2901207 -> Изменяет размер, но не максимизирует его, потому что окно не вв верхнем левом углу не получается удалить -100. Кроме того, установка очень большого значения возвращает false для TryResizeView.

  3. И, конечно, я пытался использовать: ApplicationView.PreferredLaunchWindowingMode = ApplicationViewWindowingMode.Maximized;

Как сделать так, чтобы мое приложение UWP было максимизировано , но не на весь экран . Я просто хочу нажать эту кнопку максимизации с помощью кода! Так легко, но так сложно.

1 Ответ

0 голосов
/ 04 ноября 2019

Все хорошо, за исключением того, что вам нужно сделать это в App.xaml.cs при OnLaunched событии. Как сказал @Raymond в комментарии, вам нужно добавить строку ниже в конце

       Windows.UI.ViewManagement.ApplicationView.GetForCurrentView().TryResizeView(bounds);

Полный код ниже

App.xaml.cs

    protected override void OnLaunched(LaunchActivatedEventArgs e)
    {
        Frame rootFrame = Window.Current.Content as Frame;
        if (rootFrame == null)
        {
            rootFrame = new Frame();

            rootFrame.NavigationFailed += OnNavigationFailed;
            Window.Current.Content = rootFrame;
        }

        if (e.PrelaunchActivated == false)
        {
            if (rootFrame.Content == null)
            {
                rootFrame.Navigate(typeof(MainPage), e.Arguments);
            }
            MaximizeWindowOnLoad();
            Window.Current.Activate();
        }
    }
    private void MaximizeWindowOnLoad()
    {
        var view = DisplayInformation.GetForCurrentView();
        var resolution = new Size(view.ScreenWidthInRawPixels, view.ScreenHeightInRawPixels);
        var scale = view.ResolutionScale == ResolutionScale.Invalid ? 1 : view.RawPixelsPerViewPixel;
        var bounds = new Size(resolution.Width / scale, resolution.Height / scale);
        ApplicationView.GetForCurrentView().SetPreferredMinSize(bounds);
        ApplicationView.PreferredLaunchViewSize = new Size(bounds.Width, bounds.Height);
        ApplicationView.PreferredLaunchWindowingMode = ApplicationViewWindowingMode.PreferredLaunchViewSize;
       Windows.UI.ViewManagement.ApplicationView.GetForCurrentView().TryResizeView(bounds);

    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...