.NET 6 Maui Windows应用如何设置启动时进入全屏模式?
.NET 6 MAUI Windows平台启动即进入全屏的实现方案
可以实现,针对你尝试的两种方案存在的问题,以下是有效的解决方法:
问题分析
- 第一种方案中,MAUI的跨平台抽象
Window类本身并没有WindowState属性,该属性是Windows原生窗口的特性,不能直接通过MAUI的Window对象访问。 - 第二种方案在
App构造函数中调用ApplicationView.GetForCurrentView()时,Windows平台的窗口尚未完成初始化,无法获取有效的视图实例,导致全屏调用无效。
正确实现步骤
通过订阅MAUI窗口的Created事件,在窗口完全初始化后调用Windows平台特定API进入全屏:
- 添加Windows平台相关命名空间:
Windows.UI.ViewManagement - 在
CreateWindow方法中创建窗口,并绑定Created事件处理逻辑
完整代码示例:
using Microsoft.Maui.Controls; using Windows.UI.ViewManagement; namespace YourAppName; public partial class App : Application { public App() { InitializeComponent(); } protected override Window CreateWindow(IActivationState activationState) { var window = new Window(activationState) { Content = new MainPage() }; // 窗口创建完成后执行全屏逻辑 window.Created += (sender, args) => { if (Device.RuntimePlatform == Device.Windows) { var appView = ApplicationView.GetForCurrentView(); appView?.TryEnterFullScreenMode(); } }; return window; } }
原理说明
Created事件会在MAUI窗口及其对应的Windows原生窗口完全初始化后触发,此时调用ApplicationView.GetForCurrentView()能正确获取到当前应用视图实例,调用TryEnterFullScreenMode()即可成功进入全屏模式。
内容的提问来源于stack exchange,提问作者Andreas
相关产品推荐
相关产品推荐

