如何让WinUI 3应用启动时窗口最大化?
解决应用强制全屏启动的问题
检查窗口初始化配置
不管使用Win32、Qt、WPF还是其他框架,优先排查窗口创建时的显示样式参数:- Win32:避免使用
WS_POPUP+SW_SHOWMAXIMIZED组合,改用WS_OVERLAPPEDWINDOW搭配SW_SHOWNORMAL - Qt:替换
QWidget::showFullScreen()为QWidget::show(),或初始化时设置setWindowState(Qt::WindowNoState) - WPF:把主窗口的
WindowState设为WindowState.Normal,WindowStyle设为WindowStyle.SingleBorderWindow
- Win32:避免使用
调整渲染库启动参数
如果基于DirectX、OpenGL这类渲染库开发,检查渲染上下文的创建配置:- DirectX:创建交换链时不要设置
DXGI_SWAP_CHAIN_FLAG_FULLSCREEN,启用窗口模式相关标志 - OpenGL:使用
glfwCreateWindow时不传入GLFW_FULLSCREEN参数,直接指定目标窗口的宽高数值
- DirectX:创建交换链时不要设置
排查系统与驱动设置
部分系统或显卡驱动会强制应用全屏,可做以下调整:- 显卡控制面板(NVIDIA/AMD):找到对应应用,关闭“全屏优化”“强制全屏”选项
- Windows系统:在应用属性的「兼容性」标签勾选“禁用全屏优化”,或关闭设置→游戏→游戏模式
代码示例(WPF)
在App.xaml.cs的启动逻辑中强制指定窗口状态:protected override void OnStartup(StartupEventArgs e) { base.OnStartup(e); var mainWindow = new MainWindow(); mainWindow.WindowState = WindowState.Normal; mainWindow.WindowStyle = WindowStyle.SingleBorderWindow; mainWindow.Show(); }
内容的提问来源于stack exchange,提问作者Thrasherx6
相关产品推荐
相关产品推荐

