当前位置:首页 > 技能相关 > .NET > 正文内容

.NET MAUI 修改AppShell.xaml文件,用以显示添加的页面(三)

admin10个月前 (10-23).NET4980 修订时间:2024-10-23 17:37:25

问题

.NET MAUI添加Page.xaml文件后,如何让页面显示在启动界面(当然也可以按流程显示页面)

方法

AppShell 类定义了应用的视觉对象层次结构,即用于创建应用 UI 的 XAML 标记。 更新 XAML 以添加 TabBar 控件:

<?xml version="1.0" encoding="UTF-8" ?>
<Shell
    x:Class="Notes.AppShell"
    xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    xmlns:local="clr-namespace:Notes"
    Shell.FlyoutBehavior="Disabled"
    Title="Notes">
    <ShellContent
        Title="Home"
        ContentTemplate="{DataTemplate local:MainPage}"
        Route="MainPage" />
</Shell>

修改代码如下:

<?xml version="1.0" encoding="UTF-8" ?>
<Shell
    x:Class="Notes.AppShell"
    xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
    xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
    xmlns:local="clr-namespace:Notes"
    Shell.FlyoutBehavior="Disabled"
    Title="Notes">
    <TabBar>
        <ShellContent
            Title="笔记"
            ContentTemplate="{DataTemplate local:MainPage}"
            Icon="{OnPlatform 'icon_notes.png', iOS='icon_notes_ios.png', MacCatalyst='icon_notes_ios.png'}" />

        <ShellContent
            Title="关于"
            ContentTemplate="{DataTemplate local:AboutPage}"
            Icon="{OnPlatform 'icon_about.png', iOS='icon_about_ios.png', MacCatalyst='icon_about_ios.png'}" />
    </TabBar>
</Shell>

让我们分解 XAML 的关键部分:

<Shell> 是 XAML 标记的根对象。

<TabBar> 是 Shell 的内容。

<TabBar> 内的两个 <ShellContent> 对象。 在替换模板代码之前,存在一个指向 MainPage 页的 <ShellContent> 对象。

TabBar 及其子项不表示任何用户界面元素,而是表示应用的视觉对象层次结构的组织。 Shell 会采用这些对象并生成内容的用户界面,顶部有表示每个页面的栏。

ShellContent.Icon 属性设置

语法结构

Title="笔记"
ContentTemplate="{DataTemplate local:MainPage}"
Icon="{OnPlatform ...}"

Title => 代表页面标题;

ContentTemplate => 指向显示的页面,{DataTemplate local:AboutPage} 中local代表根命名空间,AboutPage代表只想AboutPage.xaml页面文件;假定存在Notes.Views命名空间,则{DataTemplate local:AboutPage}可变更为{DataTemplate Views:AboutPage1},这行Notes.Views命名空间的AboutPage1.xaml页面;

Icon => 设置图标,Icon="{OnPlatform 'icon_about.png', iOS='icon_about_ios.png', MacCatalyst='icon_about_ios.png'}",在这种情况下,每个平台默认使用 icon_about.png 图标,但 iOS 和 MacCatalyst 将使用 icon_about_ios.png。

显示结果

image.png

 您阅读本篇文章共花了: 

免责声明
本站内容均为博客主本人日常使用记录的存档,如侵犯你的权益请联系:lifei@zaiheze.com 546262132@qq.com 沟通删除事宜。本站仅带访问端口形式使用,已杜绝搜索引擎爬取。

扫描二维码推送至手机访问。

版权声明:本文由LIFEI - blog发布,如需转载请注明出处。

本文链接:http://www.lifeiai.com/index.php?id=445

分享给朋友:
返回列表

上一篇:.NET MAUI 新建Page.xaml文件 (二)

没有最新的文章了...

发表评论

访客

◎欢迎参与讨论,请在这里发表您的看法和观点。