
别再手写侧边栏了WPF UI NavigationView从零到MVVM绑定的完整实践【免费下载链接】wpfuiWPF UI provides the Fluent experience in your known and loved WPF framework. Intuitive design, themes, navigation and new immersive controls. All natively and effortlessly.项目地址: https://gitcode.com/GitHub_Trending/wp/wpfuiWPF UI NavigationViewwpfui 项目是一个把侧边栏 页眉/页脚菜单 内容区整合进单个控件的 WPF 导航控件选中态、返回按钮、页面切换都由它处理你不用再手搓侧边导航。一句话讲清楚它是干嘛的NavigationView 是 WPF UI 的顶层导航控件左侧挂一个可收起的面板pane顶部能放标题或面包屑中间是内容区菜单项分 MenuItems主菜单和 FooterMenuItems页脚通常放设置两组。点菜单项内容区自动切到对应页面历史栈还能配合 GoBack() 回退。谁还没被 TabControl 折磨过呢第一次用这个控件会松一口气。最小可运行代码装好 Wpf.Ui 包后XAML 里写下这个骨架假定已声明xmlns:uiui:NavigationView x:NameRootNavigation ui:NavigationView.MenuItems ui:NavigationViewItem ContentHome Icon{ui:SymbolIcon Home24} TargetPageType{x:Type pages:DashboardPage} / ui:NavigationViewItem ContentData Icon{ui:SymbolIcon DataHistogram24} TargetPageType{x:Type pages:DataPage} / /ui:NavigationView.MenuItems ui:NavigationView.FooterMenuItems ui:NavigationViewItem ContentSettings Icon{ui:SymbolIcon Settings24} TargetPageType{x:Type pages:SettingsPage} / /ui:NavigationView.FooterMenuItems /ui:NavigationViewservices.AddSingletonINavigationService, NavigationService();XAML 加 C# 一行注册最小闭环就通了侧边栏出来、点菜单换页、返回按钮可用。把页面和菜单用数据绑起来为什么用数据驱动而不是硬编码 XML两三个菜单项时硬编码无所谓一旦菜单要按权限过滤、从数据库生成XAML 就写不下去了。关键就两个点MenuItemsSource绑一个ObservableCollectionobject每一项的TargetPageType告诉 NavigationView 点击后要导航到哪个页面NavigationItems new ObservableCollectionobject { new NavigationViewItem { Content Data, Icon new SymbolIcon { Symbol SymbolRegular.DataHistogram24 }, TargetPageType typeof(DataPage), }, };XAML 侧一行MenuItemsSource{Binding MenuItems}接上。从此增菜单、调顺序、删项都是集合操作视图模型不用碰控件本身。从 DI 注册到SetNavigationControl的完整 MVVM 绑定链路在 MVVM示例 里直接抄。三种显示模式怎么选设置 WPF 侧边栏其实就改一个属性PaneDisplayMode侧边栏形态整个变化。Left 是默认面板常开全展开适合多级菜单的中大窗口是企业管理后台的主力形态LeftMinimal 即紧凑模式左侧只留图标、悬停展开小窗口不占地方LeftFluent 是大图标风格图标下带文字、不支持子菜单适合入口不多的宽窗口首页。另有 Top/Bottom 把菜单摆到顶栏或底栏用得较少。想让窗口变窄时自动换成紧凑模式把PaneDisplayMode绑定到视图模型属性、在SizeChanged里更新即可。模式适用窗口宽度典型产品Left≥900px多级菜单企业后台、数据看板LeftMinimal紧凑600~900px个人工具、轻量客户端LeftFluent宽窗口、入口少首页/启动器式应用主题与图标对齐的隐藏设置两个容易忽略的开关。其一是主题窗口构造函数里一行Appearance.SystemThemeWatcher.Watch(this)WPF UI 主题切换就会跟随系统明暗自动走导航控件包含在内手动换主题再用ApplicationThemeManager或IThemeService。其二是搜索槽位面板里预留了AutoSuggestBox位置塞一个搜索框进去菜单检索就是一行的事菜单项一多它很顶用。图标建议统一用SymbolIcon枚举如Home24别混第三方图标字体否则侧边栏会五颜六色。示例项目里能直接抄的文件MVVM 示例菜单数据绑定 依赖注入 NavigationService 的完整走法是上面骨架通向生产级的最短路径基础示例无视图模型的纯代码后置版本适合先看懂控件行为NavigationView 文档事件、PageTag、页面缓存 CacheHistory 等完整 API紧凑模板 与 Fluent 模板VS 里建工程的新项目模板一个紧凑图标菜单一个大图标风格容易踩的三个坑❌ 忘了TargetPageType或塞了个构造不出来的类型——✅ 它是必填项页面必须能无参构造或在 DI 里注册好 provider。❌ 主题色写死抱怨系统切换时界面不变——✅ 用 WPF UI 提供的{DynamicResource}主题资源别手写色值。❌CacheHistory无脑开大内存随导航越涨越多——✅ 只给创建昂贵或必须保状态的页面开缓存高频变数据页面别缓存。具体行为都跑一遍示例项目你对这个侧边栏到底替你做了什么就有数了。【免费下载链接】wpfuiWPF UI provides the Fluent experience in your known and loved WPF framework. Intuitive design, themes, navigation and new immersive controls. All natively and effortlessly.项目地址: https://gitcode.com/GitHub_Trending/wp/wpfui创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考