Развернуть окно приложения UWP при запуске
есть ли способ (C# или XAML) развернуть окно приложения UWP даже после того, как я изменил размер и закрыл его ранее на рабочем столе?
Я пробовал с ApplicationViewWindowingMode.FullScreen но это делает приложение идти весь экран и охватывает панель задач Widnows тоже.
2 ответов
вы можете использовать другое значение PreferredLaunchViewSize С ApplicationViewWindowingMode и затем установить ApplicationView.PreferredLaunchViewSize но ключ, чтобы узнать, что в размере будет.
теоретически, вы можете использовать действительно большое число, и окно будет просто расширяться до максимума. Однако, вероятно, безопаснее просто рассчитать размеры экрана в эффективных пикселей.
поэтому, если вы просто вызываете следующий метод до InitializeComponent(); на главной Page, он должен максимизировать окно при запуске.
private static void MaximizeWindowOnLoad()
{
    // Get how big the window can be in epx.
    var bounds = ApplicationView.GetForCurrentView().VisibleBounds;
    ApplicationView.PreferredLaunchViewSize = new Size(bounds.Width, bounds.Height);
    ApplicationView.PreferredLaunchWindowingMode = ApplicationViewWindowingMode.PreferredLaunchViewSize;
}
обратите внимание, что приложение каким-то образом запоминает эти настройки даже после его удаления. Если вы когда-нибудь захотите вернуться к поведению по умолчанию (приложение запускается с предыдущим размером окна), просто позвоните ApplicationView.PreferredLaunchWindowingMode = ApplicationViewWindowingMode.Auto; один раз и удалите весь код.
обновление
похоже на последнюю версию Windows 10 build,ApplicationView.GetForCurrentView().VisibleBounds больше не возвращает полное размер окна в эффективном больше пикселей. Так теперь нам нужен новый способ расчета.
оказывается, это довольно просто, так как DisplayInformation класс также дает нам разрешение экрана, а также масштабный фактор.
ниже приведен обновленный код -
public MainPage()
{
    MaximizeWindowOnLoad();
    InitializeComponent();
    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.PreferredLaunchViewSize = new Size(bounds.Width, bounds.Height);
        ApplicationView.PreferredLaunchWindowingMode = ApplicationViewWindowingMode.PreferredLaunchViewSize;
    }
} 
у меня есть один лайнер, который работает так, как я ожидал, код Justins, но по какой-то причине при использовании ответа Justins мое окно не будет максимизировано... Но затем я изменил что-то, что сделало его максимальным, но я потерял весь свой беглый дизайн, такой как акрил и RevealHighlite...
поэтому я придумал этот лайнер, который держит все мои принципы дизайна счастливыми:
ApplicationView.GetForCurrentView().TryEnterFullScreenMode();
что-то отметить:
Я попытался ответить Justins, и я использую его метод MaximizeWindowOnLoad (), который я вызвал сразу после initializeComponent ();
подробное описание:
public class()
        {     
            this.InitializeComponent();
            MaximizeWindowOnLoad();   
        }
private static void MaximizeWindowOnLoad()
        { 
           ApplicationView.GetForCurrentView().TryEnterFullScreenMode();
        }
