You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何确保C# UWP应用安装后首次启动即全屏显示?

解决UWP应用首次启动无法全屏的问题

针对你遇到的UWP应用安装后首次启动无法全屏、后续启动正常的问题,可通过以下两种方案解决:

方案一:直接使用系统全屏模式(推荐)

放弃自定义尺寸的方式,直接调用系统全屏API,这种方式在首次启动时更可靠:

private void MaximizeWindowOnLoad()
{
    var currentView = ApplicationView.GetForCurrentView();
    // 尝试进入全屏模式
    currentView.TryEnterFullScreenMode();
    // 设置默认启动模式为全屏,确保后续启动保持状态
    ApplicationView.PreferredLaunchWindowingMode = ApplicationViewWindowingMode.FullScreen;
}

方案二:调整窗口设置的执行时机

首次启动时应用视图初始化未完全完成,原代码的设置时机可能过早。可将窗口调整逻辑延迟到窗口激活后执行:

修改OnLaunched方法中的调用顺序:

if (e.PrelaunchActivated == false)
{
    if (rootFrame.Content == null)
    {
        rootFrame.Navigate(typeof(MainPage), e.Arguments);
    }
    Window.Current.Activate();
    // 通过Dispatcher延迟执行,确保视图完全初始化
    Dispatcher.RunAsync(CoreDispatcherPriority.Normal, MaximizeWindowOnLoad);
}

同时优化原MaximizeWindowOnLoad方法,移除不必要的最小尺寸设置(这可能干扰首次启动的窗口调整):

private void MaximizeWindowOnLoad()
{
    var displayInfo = DisplayInformation.GetForCurrentView();
    var scale = displayInfo.RawPixelsPerViewPixel;
    var bounds = new Size(
        displayInfo.ScreenWidthInRawPixels / scale,
        displayInfo.ScreenHeightInRawPixels / scale
    );
    var currentView = ApplicationView.GetForCurrentView();
    
    ApplicationView.PreferredLaunchViewSize = bounds;
    ApplicationView.PreferredLaunchWindowingMode = ApplicationViewWindowingMode.PreferredLaunchViewSize;
    currentView.TryResizeView(bounds);
}

问题原因分析

首次启动时,UWP系统会优先使用默认的应用启动尺寸策略,此时PreferredLaunchViewSize的设置尚未被系统持久化读取,导致自定义尺寸不生效。而后续启动时,系统已经保存了之前的窗口设置,因此代码可以正常生效。直接使用全屏模式或延迟执行设置,能绕过系统首次启动的默认策略限制。

内容的提问来源于stack exchange,提问作者Gevorg Margaryan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.03 08:05:23