Windows UWP C++/CX应用程序启动即自动全屏的实现方法
UWP C++/CX应用启动即全屏的实现方法
方法1:通过应用清单配置(推荐,无闪烁)
这是最直接的方式,无需编写代码,能从系统层面确保应用启动瞬间进入全屏:
- 打开项目中的
Package.appxmanifest文件,切换到应用程序选项卡 - 直接编辑XML内容,找到
<Application>节点下的<uap:VisualElements>标签,添加或修改PreferredLaunchWindowingMode属性为FullScreen
示例代码:<uap:VisualElements DisplayName="你的应用名称" Square150x150Logo="Assets\Square150x150Logo.png" Square44x44Logo="Assets\Square44x44Logo.png" Description="你的应用描述" BackgroundColor="#464646" PreferredLaunchWindowingMode="FullScreen"> - 保存后重新编译,应用启动时会直接以全屏状态加载。
方法2:在代码初始化阶段设置(适合动态场景)
如果需要根据特定条件动态控制全屏状态,可以在应用初始化的早期步骤执行:
- 打开
App.xaml.cpp,找到OnLaunched方法 - 在窗口内容初始化完成后、窗口激活前,调用全屏API:
void App::OnLaunched(Windows::ApplicationModel::Activation::LaunchActivatedEventArgs^ e) { auto rootFrame = dynamic_cast<Frame^>(Window::Current->Content); if (rootFrame == nullptr) { rootFrame = ref new Frame(); rootFrame->NavigationFailed += ref new Windows::UI::Xaml::Navigation::NavigationFailedEventHandler(this, &App::OnNavigationFailed); if (e->PreviousExecutionState == ApplicationExecutionState::Terminated) { // 此处可恢复应用状态 } Window::Current->Content = rootFrame; } if (e->PrelaunchActivated == false) { if (rootFrame->Content == nullptr) { rootFrame->Navigate(TypeName(MainPage::typeid), e->Arguments); } // 立即触发全屏 auto appView = Windows::UI::ViewManagement::ApplicationView::GetForCurrentView(); appView->TryEnterFullScreenMode(); Window::Current->Activate(); } } - 需确保
TryEnterFullScreenMode()调用紧跟在窗口内容初始化后,最大程度减少窗口闪烁。
注意事项
- 清单配置的优先级高于代码设置,且能完全避免启动时的非全屏闪烁,优先推荐使用。
- 若应用支持多窗口,需为每个新创建的窗口单独调用全屏API。
- 测试时需确认设备无特殊窗口大小限制的兼容性设置。
内容的提问来源于stack exchange,提问作者user2279952
相关产品推荐
相关产品推荐

