<UserControl
             xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
             xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
             xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
             xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
             xmlns:local="clr-namespace:MWSDomain.Common.UserControls"
             xmlns:materialDesign="http://materialdesigninxaml.net/winfx/xaml/themes"
             xmlns:Converters="clr-namespace:MaterialDesignThemes.Wpf.Converters;assembly=MaterialDesignThemes.Wpf" x:Class="MWSDomain.Common.UserControls.MainMinLeftMenu"
             mc:Ignorable="d">
    <UserControl.Resources>
        <Style x:Key="ButtonStyle" TargetType="{x:Type Button}">
            <Setter Property="FocusVisualStyle">
                <Setter.Value>
                    <Style>
                        <Setter Property="Control.Template">
                            <Setter.Value>
                                <ControlTemplate>
                                    <Rectangle Margin="2" SnapsToDevicePixels="True" Stroke="{DynamicResource {x:Static SystemColors.ControlTextBrushKey}}" StrokeThickness="1" StrokeDashArray="1 2"/>
                                </ControlTemplate>
                            </Setter.Value>
                        </Setter>
                    </Style>
                </Setter.Value>
            </Setter>
            <Setter Property="HorizontalAlignment" Value="Center"/>
            <Setter Property="FocusVisualStyle" Value="{x:Null}"/>
            <Setter Property="FontFamily" Value="/Common/Fonts/#iconfont"/>
            <Setter Property="Background" Value="{DynamicResource PrimaryHueMidBrush}"/>
            <Setter Property="BorderBrush" Value="{DynamicResource PrimaryHueMidBrush}"/>
            <Setter Property="Foreground" Value="{DynamicResource PrimaryHueMidForegroundBrush}"/>
            <Setter Property="materialDesign:RippleAssist.Feedback" Value="White"/>
            <Setter Property="Cursor" Value="Hand"/>
            <Setter Property="materialDesign:ShadowAssist.ShadowDepth" Value="Depth2"/>
            <Setter Property="FontWeight" Value="Medium"/>
            <Setter Property="FontSize" Value="22"/>
            <Setter Property="BorderThickness" Value="0"/>
            <Setter Property="HorizontalContentAlignment" Value="Center"/>
            <Setter Property="VerticalContentAlignment" Value="Center"/>
            <Setter Property="Padding" Value="16,4"/>
            <Setter Property="Height" Value="32"/>
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type Button}">
                        <Grid>
                            <AdornerDecorator CacheMode="{Binding (materialDesign:ShadowAssist.CacheMode), RelativeSource={RelativeSource Self}}">
                                <Grid>
                                    <Border x:Name="border" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}" CornerRadius="0">
                                        <Border.Effect>
                                            <Binding Path="(materialDesign:ShadowAssist.ShadowDepth)" RelativeSource="{RelativeSource TemplatedParent}">
                                                <Binding.Converter>
                                                    <Converters:ShadowConverter/>
                                                </Binding.Converter>
                                            </Binding>
                                        </Border.Effect>
                                    </Border>
                                    <Border Background="{DynamicResource MaterialDesignBackground}" HorizontalAlignment="Left" Opacity="0.4">
                                        <Border.Width>
                                            <MultiBinding UpdateSourceTrigger="Default">
                                                <MultiBinding.Converter>
                                                    <Converters:RangeLengthConverter/>
                                                </MultiBinding.Converter>
                                                <Binding Path="(materialDesign:ButtonProgressAssist.Minimum)" RelativeSource="{RelativeSource TemplatedParent}"/>
                                                <Binding Path="(materialDesign:ButtonProgressAssist.Maximum)" RelativeSource="{RelativeSource TemplatedParent}"/>
                                                <Binding Path="(materialDesign:ButtonProgressAssist.Value)" RelativeSource="{RelativeSource TemplatedParent}"/>
                                                <Binding Path="ActualWidth" RelativeSource="{RelativeSource FindAncestor, AncestorLevel=1, AncestorType={x:Type ButtonBase}}"/>
                                            </MultiBinding>
                                        </Border.Width>
                                    </Border>
                                </Grid>
                            </AdornerDecorator>
                            <materialDesign:Ripple ContentTemplate="{TemplateBinding ContentTemplate}" 
                                                   Content="{TemplateBinding Content}" Focusable="False"
                                                   HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" 
                                                   Padding="{TemplateBinding Padding}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" 
                                                   VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}"/>
                        </Grid>
                        <ControlTemplate.Triggers>
                            <Trigger Property="IsMouseOver" Value="True">
                                <Setter Property="materialDesign:ShadowAssist.Darken" TargetName="border" Value="True"/>
                            </Trigger>
                            <Trigger Property="IsKeyboardFocused" Value="True">
                                <Setter Property="materialDesign:ShadowAssist.Darken" TargetName="border" Value="True"/>
                            </Trigger>
                            <Trigger Property="IsEnabled" Value="False">
                                <Setter Property="Opacity" Value="0.23"/>
                            </Trigger>
                        </ControlTemplate.Triggers>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
    </UserControl.Resources>

    <Grid>
        <Border BorderThickness="0 0 1 0" BorderBrush="#F0F0F0"/>
        <StackPanel>
            <Button Style="{DynamicResource ButtonStyle}"  Background="#36648B" BorderBrush="#36648B" 
                       ToolTip="展开面板"
                Width="55" Height="40" Content="&#xe733;" 
                Command="{Binding NoticeView.FullCommand}"
                HorizontalAlignment="Left" />
            <ItemsControl Grid.Row="1" ItemsSource="{Binding ModuleManager.Modules}" >
                <ItemsControl.ItemsPanel>
                    <ItemsPanelTemplate>
                        <StackPanel/>
                    </ItemsPanelTemplate>
                </ItemsControl.ItemsPanel>

                <ItemsControl.ItemTemplate>
                    <DataTemplate>
                        <Button  Style="{DynamicResource ButtonStyle}" HorizontalAlignment="Left" Content="{Binding ICON}" 
                             ToolTip="{Binding Name}"
                             Width="55" Height="50"
                             Command="{Binding DataContext.ExcuteCommand, Mode=TwoWay,
                             RelativeSource={RelativeSource FindAncestor, 
                             AncestorType={x:Type local:MainMinLeftMenu}}}"   
                             CommandParameter="{Binding}" 
                             />
                    </DataTemplate>
                </ItemsControl.ItemTemplate>
            </ItemsControl>
        </StackPanel>
    </Grid>
</UserControl>
