corp-app/CORP-MAUI/AppShell.xaml

102 lines
4.9 KiB
XML

<?xml version="1.0" encoding="UTF-8" ?>
<Shell
x:Class="CORP_MAUI.AppShell"
xmlns="http://schemas.microsoft.com/dotnet/2021/maui"
xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml"
xmlns:pages="clr-namespace:CORP_MAUI.Pages"
xmlns:toolkit="http://schemas.microsoft.com/dotnet/2022/maui/toolkit"
Shell.TabBarBackgroundColor="#0D6EFD"
Shell.TabBarForegroundColor="White"
Shell.TabBarTitleColor="Transparent"
Shell.TabBarUnselectedColor="White"
FlyoutBackgroundColor="#0D6EFD"
FlyoutWidth="220"
Shell.NavBarIsVisible="False"
x:Name="MainShell"
FlyoutBehavior="Disabled">
<!-- Flyout Header (показывается только в режиме Flyout) -->
<Shell.FlyoutHeader>
<Grid HeightRequest="100" BackgroundColor="#0A5ED7" Padding="15">
<VerticalStackLayout VerticalOptions="Center" Spacing="8">
<Image
Source="logo.png"
HeightRequest="40"
WidthRequest="40"
HorizontalOptions="Start"/>
<Label
Text="HiRo"
TextColor="White"
FontSize="14"
FontAttributes="Bold"/>
</VerticalStackLayout>
</Grid>
</Shell.FlyoutHeader>
<!-- Стили для Flyout элементов -->
<Shell.ItemTemplate>
<DataTemplate x:DataType="BaseShellItem">
<Grid ColumnDefinitions="50,*" Padding="10" HeightRequest="50">
<Image
Grid.Column="0"
Source="{Binding Icon}"
HeightRequest="24"
WidthRequest="24"
VerticalOptions="Center"
HorizontalOptions="Center">
<Image.Behaviors>
<toolkit:IconTintColorBehavior TintColor="White"/>
</Image.Behaviors>
</Image>
<Label
Grid.Column="1"
Text="{Binding Title}"
TextColor="White"
FontSize="15"
VerticalOptions="Center"/>
</Grid>
</DataTemplate>
</Shell.ItemTemplate>
<!-- TabBar для узких экранов (мобильные устройства) -->
<!-- Порядок: Меню, Сообщения, Лента, Заявления, Сотрудники -->
<!-- Иконки белые на синем фоне, без подписей -->
<TabBar x:Name="MobileTabBar">
<ShellContent Icon="menu.svg" Route="MenuTab" ContentTemplate="{DataTemplate pages:MenuTabPage}" />
<ShellContent Icon="chats.svg" ContentTemplate="{DataTemplate pages:ChatsPage}" />
<ShellContent Icon="feed.svg" ContentTemplate="{DataTemplate pages:PostsPage}" />
<ShellContent Icon="statements.svg" ContentTemplate="{DataTemplate pages:RequestsPage}" />
<ShellContent Icon="employees.svg" ContentTemplate="{DataTemplate pages:EmployeesPage}" />
</TabBar>
<!-- FlyoutItems для широких экранов (скрыт по умолчанию, управляется программно) -->
<FlyoutItem x:Name="DesktopFlyoutNews" Title="Новости" Icon="feed.png" FlyoutDisplayOptions="AsSingleItem" IsVisible="False">
<ShellContent ContentTemplate="{DataTemplate pages:PostsPage}" />
</FlyoutItem>
<FlyoutItem x:Name="DesktopFlyoutEmployees" Title="Сотрудники" Icon="employees.png" FlyoutDisplayOptions="AsSingleItem" IsVisible="False">
<ShellContent ContentTemplate="{DataTemplate pages:EmployeesPage}" />
</FlyoutItem>
<FlyoutItem x:Name="DesktopFlyoutDepartments" Title="Отделы" Icon="department.png" FlyoutDisplayOptions="AsSingleItem" IsVisible="False">
<ShellContent ContentTemplate="{DataTemplate pages:DepartmentsPage}" />
</FlyoutItem>
<FlyoutItem x:Name="DesktopFlyoutChats" Title="Чаты" Icon="chats.svg" FlyoutDisplayOptions="AsSingleItem" IsVisible="False">
<ShellContent ContentTemplate="{DataTemplate pages:ChatsPage}" />
</FlyoutItem>
<FlyoutItem x:Name="DesktopFlyoutRequests" Title="Заявления" Icon="statements.png" FlyoutDisplayOptions="AsSingleItem" IsVisible="False">
<ShellContent ContentTemplate="{DataTemplate pages:RequestsPage}" />
</FlyoutItem>
<FlyoutItem x:Name="DesktopFlyoutDocuments" Title="Документы" Icon="documents.png" FlyoutDisplayOptions="AsSingleItem" IsVisible="False">
<ShellContent ContentTemplate="{DataTemplate pages:DocumentsPage}" />
</FlyoutItem>
<FlyoutItem x:Name="DesktopFlyoutProfile" Title="Профиль" Icon="profile.png" FlyoutDisplayOptions="AsSingleItem" IsVisible="False">
<ShellContent ContentTemplate="{DataTemplate pages:ProfilePage}" />
</FlyoutItem>
</Shell>