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

WinUI 3 应用启动时默认导航至Home导航项的实现方法

WinUI3 启动时默认选中Home项并加载对应页面(无ViewModel实现)

不需要依赖ViewModel,直接在MainWindow的代码后置文件中即可实现需求,具体步骤如下:

1. 编写导航逻辑(MainWindow.xaml.cs)

打开MainWindow.xaml.cs,添加以下代码,实现默认选中、页面导航及后续点击切换的逻辑:

using Microsoft.UI.Xaml;
using Microsoft.UI.Xaml.Controls;

namespace Ankara_Online
{
    public sealed partial class MainWindow : Window
    {
        public MainWindow()
        {
            this.InitializeComponent();
            // 绑定窗口加载事件,设置默认导航
            this.Loaded += MainWindow_Loaded;
            // 绑定导航项选择事件,处理页面切换
            _navigationView.SelectionChanged += NavigationView_SelectionChanged;
        }

        private void MainWindow_Loaded(object sender, RoutedEventArgs e)
        {
            // 默认选中Home导航项
            _navigationView.SelectedItem = homePageItem;
            // 加载Home页面
            NavigateToPage("homePage");
        }

        private void NavigationView_SelectionChanged(NavigationView sender, NavigationViewSelectionChangedEventArgs args)
        {
            if (args.SelectedItem is NavigationViewItem selectedItem)
            {
                string pageTag = selectedItem.Tag.ToString();
                NavigateToPage(pageTag);
                // 更新导航头部文字(可选,不需要可删除)
                _navigationView.Header = selectedItem.Content.ToString();
            }
        }

        // 根据Tag匹配页面的通用导航方法
        private void NavigateToPage(string pageTag)
        {
            switch (pageTag)
            {
                case "homePage":
                    contentFrame.Navigate(typeof(homePage));
                    break;
                case "softwareSectorFilePage":
                    contentFrame.Navigate(typeof(softwareSectorFilePage));
                    break;
                case "DocumentationPage":
                    contentFrame.Navigate(typeof(DocumentationPage));
                    break;
                case "SettingsPage":
                    contentFrame.Navigate(typeof(SettingsPage));
                    break;
            }
        }
    }
}

2. 关键说明

  • 启动默认处理:在窗口加载完成的MainWindow_Loaded事件中,直接指定_navigationView.SelectedItem为XAML中命名的homePageItem,同时调用导航方法加载对应页面,确保启动时选中状态和页面内容同步。
  • 统一导航逻辑:通过SelectionChanged事件处理用户后续点击其他导航项的操作,保证所有导航行为遵循同一套逻辑。
  • 通用导航方法:NavigateToPage方法根据导航项的Tag值匹配对应页面类型,避免重复编写导航代码。

3. 验证要点

  • 确认所有页面类(homePage、softwareSectorFilePage等)已正确创建,且命名空间与MainWindow一致。
  • 检查XAML中的Frame控件名称为contentFrame,与代码中的引用对应。
  • 若不需要更新导航头部文字,可删除_navigationView.Header = selectedItem.Content.ToString();这一行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.12 15:50:18