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

.NET 9迁移后.NET MAUI Application类MainPage过时问题求助

.NET 9中Application.MainPage过时的替代方案

设置主页面

在.NET 9的MAUI中,Application.MainPage已被标记为过时,官方推荐通过Window.Content来设置主页面。你可以修改App构造函数的代码:

public App()
{
    InitializeComponent();
    // 获取当前应用的第一个窗口
    var mainWindow = Application.Current.Windows.FirstOrDefault();
    if (mainWindow != null)
    {
        mainWindow.Content = new AppShell();
    }
}

更规范的做法是重写CreateWindow方法来指定窗口内容,这也是MAUI适配多窗口场景的推荐方式:

protected override Window CreateWindow(IActivationState activationState)
{
    // 直接返回包含AppShell的新窗口
    return new Window(new AppShell());
}

全局访问主页面

原来的Application.Current.MainPage可以替换为获取窗口的Content属性,你可以封装一个静态工具类方便全局调用:

public static class AppUtils
{
    public static Page MainPage => Application.Current.Windows.FirstOrDefault()?.Content as Page;
}

之后在项目中直接使用AppUtils.MainPage就能全局访问主页面了。

注:因为MAUI支持多窗口场景,这里默认取第一个窗口的内容;如果你的应用是单窗口模式,这个写法完全适用。

内容的提问来源于stack exchange,提问作者Mubeen Khanzada

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.15 15:54:57