Содержание
Класс Shell определяет ряд присоединенных свойств, которые можно использовать для глобальной настройки внешнего вида панели инструментов страниц в приложении.
Настройка цветов
Для глобальной настройки цветов панели инструментов в приложении могут использоваться следующие свойства класса Shell:
| Свойство | Тип | Описание |
BackgroundColor |
Color |
определяет цвет фона |
DisabledColor |
Color |
определяет цвет затененного текста и отключенных значков |
ForegroundColor |
Color |
определяет цвет затененного текста и значков |
TitleColor |
Color |
определяет цвет заголовка активной страницы |
UnselectedColor |
Color |
определяет цвет невыделенного текста и значков оболочки |
Например, изменим XAML-код AppShell.xaml нашего приложения следующим образом:
<?xml version="1.0" encoding="UTF-8" ?>
<Shell
x:Class="AppShellEx.AppShell"
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:local="clr-namespace:AppShellEx"
Title="AppShellEx"
BackgroundColor ="Coral"
TitleColor ="Red">
<ShellContent Title="1" ContentTemplate="{DataTemplate local:MainPage}"/>
<ShellContent Title="2" ContentTemplate="{DataTemplate local:DetailPage}"/>
</Shell>
Теперь обе страницы нашего приложения будут выглядеть следующим образом:
Также мы можем воспользоваться присоединенным свойством на любой странице приложения, чтобы переопределить цвета. Например, переопределим цвета на странице DetailPage:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="AppShellEx.DetailPage"
Title="DetailPage"
Shell.BackgroundColor ="Green"
Shell.TitleColor ="Blue">
<VerticalStackLayout>
<Label
Text="Welcome to .NET MAUI!"
VerticalOptions="Center"
HorizontalOptions="Center" />
</VerticalStackLayout>
</ContentPage>
Теперь главная страница приложения будет выглядеть также, как и на рисунке выше, а страница DetailPage вот так:
Отключение панели навигации
Чтобы отключить панель навигации на странице (или глобально на всех страницах) необходимо воспользоваться свойством Shell.NavBarIsVisible, например:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="AppShellEx.DetailPage"
Title="DetailPage"
Shell.BackgroundColor ="Green"
Shell.TitleColor ="Blue"
Shell.NavBarIsVisible="False">
<VerticalStackLayout>
<Label
Text="Welcome to .NET MAUI!"
VerticalOptions="Center"
HorizontalOptions="Center" />
</VerticalStackLayout>
</ContentPage>
Теперь страница DetailPage будет выглядеть следующим образом:
Отображение представлений на панели навигации
Чтобы отобразить на панели навигации какие-либо свои элементы, например, значки, мы должны использовать свойство Shell.TitleView. Например, изменим код страницы MainPage.xaml следующим образом:
<?xml version="1.0" encoding="utf-8" ?>
<ContentPage xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
x:Class="AppShellEx.MainPage"
Title="MainPage">
<Shell.TitleView>
<HorizontalStackLayout>
<Image Source="id.png"/>
<Label Text="Главная страница" FontSize="18" FontAttributes="Bold" VerticalTextAlignment="Center"/>
</HorizontalStackLayout>
</Shell.TitleView>
</ContentPage>
Теперь заголовок главной страницы будет выглядеть следующим образом:
Итого
Используя присоединенные свойства класса Shell мы можем производить глобальную настройку внешнего вида панели инструментов страниц нашего приложения или переопределять внешний вид, используя эти свойства на конкретной странице.
