尧图网络 高端网站定制 · 原创设计
免费咨询热线
400-888-6620
免费获取方案
Material导航栏怎么搭?mdc-maui NavigationBar底部导航栏与NavigationDrawer抽屉完整教程
Material导航栏怎么搭mdc-maui NavigationBar底部导航栏与NavigationDrawer抽屉完整教程【免费下载链接】mdc-mauiMaterial design components for .NET MAUI项目地址: https://gitcode.com/gh_mirrors/md/mdc-mauimdc-maui是为 .NET MAUI 打造的 Material Design 3 组件库其中的NavigationBar底部导航栏与NavigationDrawer导航抽屉是搭建跨平台 App 导航的两大核心组件。本文带你快速上手先认识两个组件的适用场景再用几段 XAML 就能搭出带选中态、点击切换页面、涟漪反馈的专业级导航并附上官方推荐的布局最佳实践。一、先搞懂NavigationBar 和 NavigationDrawer 有什么区别在动手之前用一张表搞清楚什么时候用哪个对比项NavigationBar 底部导航栏NavigationDrawer 导航抽屉适用设备手机等小屏幕平板、桌面等大屏幕项目数量官方建议3~5 个同级入口入口可更多支持分组呈现方式常驻屏幕底部默认收起点击呼出典型用途首页 / 分类 / 收藏 / 我的主菜单、设置等次级入口源码位置src/Material.Components.Maui/Components/NavigationBar/src/Material.Components.Maui/Components/NavigationDrawer/ 官方文档原文建议导航目的地不要频繁变动且应保持同级重要性抽屉则应把最常用的入口放在顶部、相关入口放在一起见 docs/navigation-bar.md 与 docs/navigation-drawer.md。二、3 分钟完成环境准备想要使用 Material 导航组件只需三步创建 MAUI 项目在 Visual Studio 中新建一个 .NET MAUI 应用安装 NuGet 包包名为Material.Components.Maui仓库示例工程sample/中可直接参考注册组件在 MauiProgram.cs 的构建器链中调用builder.UseMaterialComponents()并在 App.xaml 中合并mds:MaterialStyles /资源字典支持Light/Dark双色种子色。完成后所有页面只需声明一个 XML 命名空间前缀md即可直接使用全部 Material 组件。详细步骤见 docs/getting-started.md。三、NavigationBar 底部导航栏实战3 行 XAML 搭出选中态导航底部导航栏的源码入口是 NavigationBar.cs它提供Items导航项集合、SelectedItem当前选中项以及Command命令绑定。每个导航项由 NavigationBarItem.cs 实现内置了选中指示器Active Indicator和涟漪反馈。最小可用示例如下md:NavigationBar md:NavigationBarItem IconData{Static icon:Material.Star} Text首页 / md:NavigationBarItem IconData{Static icon:Material.Star} Text分类 / md:NavigationBarItem IconData{Static icon:Material.Star} Text我的 / /md:NavigationBar要点解析点击自动切换选中态用户点击某一项时组件自动将SelectedItem指向该项并触发SelectedItemChanged事件你只需在事件里切换页面内容命令绑定更简洁通过CommandCommandParameter属性可以直接把选中项对象传给 ViewModel 的命令避免在代码后硬编码判断选中指示器可定制ActiveIndicatorHeight默认 32与ActiveIndicatorColor默认取 SecondaryContainerColor 主题色让你精确控制 Material 3 标志性的胶囊形指示器样式字体图标全套可调Text、IconData、IconColor、FontColor、FontSize、FontWeight均可单独配置支持Clicked、Pressed、LongPressed等触摸事件。进阶用 ContentType 直接绑定页面类型NavigationBarItem支持ContentType属性把导航项与一个ContentView类型关联起来选中时自动实例化对应内容XAML 声明式即可完成页面切换——示例工程 01.OverviewPage.xaml 中的md:Tabs就采用了同样的思路。四、NavigationDrawer 导航抽屉实战标准 模态双风格导航抽屉是桌面与平板场景的导航主力源码见 NavigationDrawer.cs。它比底部导航栏多了两个杀手锏标题栏区TitleBar和底部固定区FooterItems并内置两种 Material 3 官方风格定义于 NavigationDrawerStyles.xaml.csStandardNavigationDrawerStyle标准风格抽屉默认展开占据左侧空间适合大屏常驻ModalNavigationDrawerStyle模态风格抽屉默认收起点击图标弹出点击外部自动关闭适合空间紧凑的布局。完整结构示例如下展示了标题、主导航区、底部固定区三大区域md:NavigationDrawer Style{DynamicResource ModalNavigationDrawerStyle} Label Padding20,0,20,20 FontAttributesBold FontSize18 TextTitle / md:NavigationDrawerItem IconData{Static icon:Material.Category} TextItem 1 / md:NavigationDrawerItem IconData{Static icon:Material.Category} TextItem 2 / md:NavigationBarItem.IconData /md:NavigationBarItem.IconData md:NavigationDrawer.FooterItems md:NavigationDrawerItem IconData{Static icon:Material.Settings} TextSettings / /md:NavigationDrawer.FooterItems /md:NavigationDrawer示例工程 MainPage.xaml 的真实用法更加精炼用ContentType把每个抽屉项直接绑定到具体页面类型Settings 放在FooterItems中常驻底部——这正是官方次级入口下沉建议的最佳实践。抽屉项的 Material 细节NavigationDrawerItem.cs 的每个抽屉项都实现了完整的视觉状态机普通、悬停、按下、选中四个状态normal / hovered / pressed / actived_*配合StateLayerColor状态层与RippleDuration涟漪动画参数在不同平台上都呈现地道的 Material 触感。五、5 条导航最佳实践清单结合官方文档与示例工程整理成可直接照做的清单控制入口数量底部导航栏保持 3~5 个再多就改用导航抽屉 分组保持入口恒定导航项不应随页面动态增删保证用户在任意页面都有相同的心理地图常用入口置顶抽屉中把使用频率最高的项放最上面相关项归为一组次级入口下沉设置、退出、主题切换等低频入口放进FooterItems与主导航视觉分离选中态交给组件优先使用SelectedItem属性与Command命令绑定避免手动逐项设置IsActived代码更少且不易出错。六、写在最后mdc-maui 的 NavigationBar 与 NavigationDrawer 把 Material 3 的导航规范选中指示器、状态层、涟漪、双风格抽屉做成了开箱即用的组件小屏用底部导航栏大屏用导航抽屉Command绑定 ContentType页面关联几行 XAML 即可搭建出专业级导航结构。打开sample/目录运行示例工程对照本文逐段尝试你会很快把这两个组件用熟。【免费下载链接】mdc-mauiMaterial design components for .NET MAUI项目地址: https://gitcode.com/gh_mirrors/md/mdc-maui创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
RELATED

相关推荐

如何向awesome列表贡献内容?awesome-IoT-hybrid提交PR完整流程指南(附MIT协议解读)

如何向awesome列表贡献内容?awesome-IoT-hybrid提交PR完整流程指南(附MIT协议解读)

如何向awesome列表贡献内容?awesome-IoT-hybrid提交PR完整流程指南(附MIT协议解读) 【免费下载链接】awesome-IoT-hybrid The missing awesome list - collection of awesome IoT and Hybrid Apps frameworks, tools, resources, videos and …

📅 2026/9/30 12:25:26
NTPClient如何适配各种WiFi开发板:ESP32、ESP8266与MKR1000完整指南

NTPClient如何适配各种WiFi开发板:ESP32、ESP8266与MKR1000完整指南

NTPClient如何适配各种WiFi开发板:ESP32、ESP8266与MKR1000完整指南 【免费下载链接】NTPClient Connect to a NTP server 项目地址: https://gitcode.com/gh_mirrors/ntpc/NTPClient NTPClient 是一款轻量级 Arduino 时间同步库,能让 ESP32、ESP…

📅 2026/9/25 21:17:39
IoT局域网设备发现实战:Android-Extensions的NsdHelper NSD助手使用教程

IoT局域网设备发现实战:Android-Extensions的NsdHelper NSD助手使用教程

IoT局域网设备发现实战:Android-Extensions的NsdHelper NSD助手使用教程 【免费下载链接】Android-Extensions An Android library with modules to quickly bootstrap an Android application. 项目地址: https://gitcode.com/gh_mirrors/an/Android-Extensions …

📅 2026/10/6 2:15:09
MORE NEWS

更多资讯

📰

多隐层网络梯度消失与Xavier、He初始化的数理推导

多隐层网络的训练困难,十次里有九次出在梯度在层与层之间传递时出了问题。最近帮一位朋友排查一个四层全连接网络,结构不复杂,数据也正常,但损失就是卡在某个值附近下不去。我当时第一反应不是调学习率,而是让他把每一…

📰

mahjong-helper实战指南:牌效分析、防守判断与记牌技巧详解

简介:mahjong-helper是一款面向雀魂、天凤玩家的日本麻将实时辅助工具,核心解决对局中的牌效判断、防守安全度与记牌需求。它能自动分析手牌,综合进张与打点给出推荐舍牌,并在有人立直或多副露时标注各牌危险度,同时记…

📰

出口IP失效排查与可用性提升实战:健康检查、重试与熔断策略

看标题进来的朋友,应该都有同一种体验:明明昨天还好好的网络出口 IP,今天突然大面积超时;又或者某个 IP 对 A 站点通得飞快,一换到 B 站点就立刻被拒。这类问题在多点拨测、自动化数据采集、接口灰度验证等场景里太常见…

📰

数字人分身源码实战:音频驱动的批量口播视频生成与避坑指南

简介:数字人分身系统源码是一套面向短视频创作者、自媒体运营者和商业内容团队的视频制作工具,通过克隆声音、动作与表情生成虚拟分身,帮助不便出镜或易忘词的用户快速产出高质量口播视频。压缩包共2005个文件,以js、md、css、jso…

📰

Kubernetes节点NotReady根因:CNI配置未初始化详解

1. 问题现场还原:K8S节点卡在 NotReady,CNI 配置未初始化的典型症状刚接手一个某高校实验室搭建的轻量级教学集群,三台物理机部署了 Kubernetes v1.13.12(这个版本虽已归档,但在教学环境和老旧硬件上仍有大量存量使用&…

📰

短视频配音工具哪个好用

说明本文基于公开产品体验与多方使用反馈整理,不含任何商业合作,仅作为选型参考。文中产品均按公开信息描述,具体功能以各平台官方页面为准。结论先看短视频配音工具没有哪个绝对最好,选型的核心就是场景匹配。已经在用剪映做视频…

TODAY

今日更新

THIS WEEK

本周精选

THIS MONTH

本月热门

读完文章,想聊聊您的网站?

告诉我们您的行业与需求,资深顾问一对一梳理方案与报价,全程免费。

📞 💬