<Window x:Class="BOB.Views.ShellView"
        xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
        xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
        xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
        xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
        xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
        xmlns:prism="http://prismlibrary.com/"
        xmlns:i="http://schemas.microsoft.com/xaml/behaviors"
        WindowStartupLocation="CenterScreen"
        xmlns:converter="clr-namespace:BOB.Converters"
        mc:Ignorable="d"
        prism:ViewModelLocator.AutoWireViewModel="True"
        WindowStyle="None"
        Title="{Binding Title}"
        d:DesignHeight="1080"
        d:DesignWidth="1920">
    <WindowChrome.WindowChrome>
        <WindowChrome GlassFrameThickness="-1" />
    </WindowChrome.WindowChrome>

    <i:Interaction.Triggers>
        <i:EventTrigger EventName="Loaded">
            <i:InvokeCommandAction Command="{Binding LoadCommand}" />
        </i:EventTrigger>
    </i:Interaction.Triggers>
    <Window.Resources>
        <converter:InverseBooleanConverter x:Key="InverseBooleanConverter" />
    </Window.Resources>
    <materialDesign:DrawerHost x:Name="MainDrawerHost"
                               IsLeftDrawerOpen="{Binding IsLeftDrawerOpen, Mode=TwoWay}">

        <!-- ✅ 左侧抽屉内容 -->
        <materialDesign:DrawerHost.LeftDrawerContent>
            <StackPanel Width="220"
                        Background="{DynamicResource MaterialDesignPaper}">
                <TextBlock Text="导航菜单"
                           FontSize="18"
                           Margin="16"
                           Foreground="{DynamicResource PrimaryHueMidBrush}" />
                <Separator Margin="0,0,0,8" />
                <Button Content="程序界面"
                        Command="{Binding NavigateCommand}"
                        CommandParameter="{Binding Content, RelativeSource={RelativeSource Self}}"
                        Style="{StaticResource MaterialDesignFlatButton}"
                        Margin="8" />

                <Button Content="监控界面"
                        Command="{Binding NavigateCommand}"
                        CommandParameter="{Binding Content, RelativeSource={RelativeSource Self}}"
                        Style="{StaticResource MaterialDesignFlatButton}"
                        Margin="8" />

                <Button Content="数据管理"
                        Command="{Binding NavigateCommand}"
                        CommandParameter="{Binding Content, RelativeSource={RelativeSource Self}}"
                        Style="{StaticResource MaterialDesignFlatButton}"
                        Margin="8" />

                <Button Content="更新信息"
                        Command="{Binding NavigateCommand}"
                        CommandParameter="{Binding Content, RelativeSource={RelativeSource Self}}"
                        Style="{StaticResource MaterialDesignFlatButton}"
                        Margin="8" />

            </StackPanel>
        </materialDesign:DrawerHost.LeftDrawerContent>
        <Grid>
            <Grid.RowDefinitions>
                <RowDefinition Height="auto" />
                <RowDefinition />
            </Grid.RowDefinitions>
            <!-- 顶部工具栏 -->
            <materialDesign:ColorZone Mode="PrimaryMid"
                                      Background="DodgerBlue"
                                      MouseLeftButtonDown="ColorZone_MouseLeftButtonDown">
                <Grid>
                    <Grid.ColumnDefinitions>
                        <ColumnDefinition Width="auto" />
                        <ColumnDefinition />
                        <ColumnDefinition Width="auto" />
                    </Grid.ColumnDefinitions>
                    <Menu Grid.Column="0"
                          Background="Transparent"
                          Foreground="White"
                          VerticalAlignment="Center">
                        <!-- 文件菜单 -->
                        <MenuItem FontSize="14"
                                  Height="50"
                                  Header="菜单"
                                  Foreground="White"
                                  Command="{Binding DataContext.LeftDrawerOpenCommand, RelativeSource={RelativeSource AncestorType=Window}}">
                            <MenuItem.Icon>
                                <materialDesign:PackIcon Kind="Menu"
                                                         Foreground="White" />
                            </MenuItem.Icon>
                        </MenuItem>
                        <MenuItem Header="文件"
                                  FontSize="14"
                                  Height="50"
                                  Foreground="White">
                            <MenuItem.Icon>
                                <materialDesign:PackIcon Kind="File"
                                                         Foreground="White" />
                            </MenuItem.Icon>
                            <MenuItem Header="新建"
                                      Foreground="Black"
                                      Command="{Binding NewCommand}" />
                            <MenuItem Header="打开"
                                      Foreground="Black"
                                      Command="{Binding OpenCommand}" />
                            <MenuItem Header="保存"
                                      Command="{Binding SaveCommand}"
                                      Foreground="Black" />
                            <MenuItem Header="另存为"
                                      Foreground="Black"
                                      Command="{Binding SaveAsCommand}" />
                            <MenuItem Header="设置默认程序"
                                      Foreground="Black"
                                      Command="{Binding SetDefaultCommand}" />
                        </MenuItem>

                        <!-- 工具菜单 -->
                        <MenuItem Header="工具"
                                  FontSize="14"
                                  Height="50"
                                  Foreground="White">
                            <MenuItem.Icon>
                                <materialDesign:PackIcon Kind="Tools"
                                                         Foreground="White" />
                            </MenuItem.Icon>

                            <MenuItem Header="同星CAN"
                                      Foreground="Black">
                                <MenuItem Header="通道映射"
                                          Command="{Binding SettingChannelCommand}"
                                          Foreground="Black" />
                                <MenuItem Header="CAN调试界面"
                                          Command="{Binding NavigateToCanPageCommand}"
                                          Foreground="Black" />
                            </MenuItem>
                          
                        </MenuItem>

                        <!-- 程序运行控制 -->
                        <MenuItem FontSize="14"
                                  Height="50"
                                  Header="运行"
                                  IsEnabled="{Binding IsTerminate, Converter={StaticResource InverseBooleanConverter}}"
                                  Command="{Binding RunningCommand}"
                                  Foreground="White">
                            <MenuItem.Icon>
                                <materialDesign:PackIcon Kind="{Binding RunIcon}"
                                                         Foreground="White" />
                            </MenuItem.Icon>
                        </MenuItem>
                        <MenuItem FontSize="14"
                                  Height="50"
                                  Header="单步执行"
                                  IsEnabled="{Binding IsTerminate, Converter={StaticResource InverseBooleanConverter}}"
                                  Command="{Binding RunSingleCommand}"
                                  Foreground="White">
                            <MenuItem.Icon>
                                <materialDesign:PackIcon Kind="ArrowRight"
                                                         Foreground="White" />
                            </MenuItem.Icon>
                        </MenuItem>
                        <MenuItem FontSize="14"
                                  Height="50"
                                  Header="停止"
                                  Command="{Binding StopCommand}"
                                  Foreground="White">
                            <MenuItem.Icon>
                                <materialDesign:PackIcon Kind="Stop"
                                                         Foreground="White" />
                            </MenuItem.Icon>
                        </MenuItem>
                        <MenuItem FontSize="14"
                                  Height="50"
                                  Header="复位"
                                  IsEnabled="{Binding IsTerminate}"
                                  Command="{Binding ResotrationCommand}"
                                  Foreground="White">
                            <MenuItem.Icon>
                                <materialDesign:PackIcon Kind="Restart"
                                                         Foreground="White" />
                            </MenuItem.Icon>
                        </MenuItem>
                    </Menu>

                    <Menu Grid.Column="2"
                          Margin="0 0 20 0">
                        <MenuItem FontSize="14"
                                  Height="50"
                                  Header="最小化"
                                  Foreground="White"
                                  Command="{Binding MinimizeCommand}"
                                  CommandParameter="{Binding RelativeSource={RelativeSource AncestorType=Window}}">
                            <MenuItem.Icon>
                                <materialDesign:PackIcon Kind="Minimize"
                                                         Foreground="White" />
                            </MenuItem.Icon>
                        </MenuItem>

                        <MenuItem FontSize="14"
                                  Height="50"
                                  Header="最大化"
                                  Foreground="White"
                                  Command="{Binding MaximizeCommand}"
                                  CommandParameter="{Binding RelativeSource={RelativeSource AncestorType=Window}}">
                            <MenuItem.Icon>
                                <materialDesign:PackIcon Kind="Maximize"
                                                         Foreground="White" />
                            </MenuItem.Icon>
                        </MenuItem>

                        <MenuItem FontSize="14"
                                  Height="50"
                                  Header="关闭"
                                  Foreground="White"
                                  Command="{Binding CloseCommand}"
                                  CommandParameter="{Binding RelativeSource={RelativeSource AncestorType=Window}}">
                            <MenuItem.Icon>
                                <materialDesign:PackIcon Kind="Close"
                                                         Foreground="White" />
                            </MenuItem.Icon>
                        </MenuItem>
                    </Menu>

                </Grid>
                <!-- 左侧菜单 -->



            </materialDesign:ColorZone>

            <materialDesign:DialogHost Grid.Row="1"
                                       x:Name="DialogHost"
                                       DialogBackground="Transparent"
                                       Background="Transparent"
                                       Identifier="Root">
                <!-- 主内容区 -->
                <Grid>
                    <ContentControl prism:RegionManager.RegionName="ShellViewManager"
                                    />
                    <Border x:Name="Overlay"
                            Background="#40000000"
                            Visibility="Collapsed"
                            Panel.ZIndex="1">
                        <StackPanel Width="150"
                                    VerticalAlignment="Center"
                                    Margin="0 0 0 100">
                            <ProgressBar Width="80"
                                         Height="80"
                                         Margin="20"
                                         IsIndeterminate="True"
                                         Style="{StaticResource MaterialDesignCircularProgressBar}" />
                            <TextBlock FontSize="30"
                                       Text="加载中......"
                                       HorizontalAlignment="Center" />
                        </StackPanel>
                    </Border>
                </Grid>
            </materialDesign:DialogHost>
        </Grid>
    </materialDesign:DrawerHost>

</Window>
