Themes/MaterialDesign3.NavigationBar.xaml
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" xmlns:converters="clr-namespace:MaterialDesignThemes.Wpf.Converters" xmlns:wpf="clr-namespace:MaterialDesignThemes.Wpf"> <ResourceDictionary.MergedDictionaries> <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.ListBox.xaml" /> <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Badged.xaml" /> </ResourceDictionary.MergedDictionaries> <Style x:Key="MaterialDesign3.NavigationBarListBoxItem" TargetType="{x:Type ListBoxItem}"> <Setter Property="Background" Value="{DynamicResource MaterialDesign.Brush.ForegroundLight}" /> <Setter Property="BorderThickness" Value="0" /> <Setter Property="FontSize" Value="12" /> <Setter Property="FontWeight" Value="Regular" /> <Setter Property="Foreground" Value="{DynamicResource MaterialDesign.Brush.Foreground}" /> <Setter Property="HorizontalContentAlignment" Value="Stretch" /> <Setter Property="Margin" Value="0" /> <Setter Property="MinHeight" Value="62" /> <Setter Property="MinWidth" Value="80" /> <Setter Property="Padding" Value="0" /> <Setter Property="SnapsToDevicePixels" Value="True" /> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type ListBoxItem}"> <Border x:Name="border" Margin="{TemplateBinding Margin}" ClipToBounds="{TemplateBinding ClipToBounds}" CornerRadius="{Binding Path=(wpf:NavigationBarAssist.CornerRadius), RelativeSource={RelativeSource TemplatedParent}}"> <VisualStateManager.VisualStateGroups> <VisualStateGroup Name="CommonStates"> <VisualStateGroup.Transitions> <VisualTransition GeneratedDuration="0:0:0.3" To="Normal"> <VisualTransition.GeneratedEasingFunction> <CircleEase EasingMode="EaseOut" /> </VisualTransition.GeneratedEasingFunction> </VisualTransition> </VisualStateGroup.Transitions> <VisualState Name="Normal" /> <VisualState Name="MouseOver"> <Storyboard> <DoubleAnimation Storyboard.TargetName="MouseOverBorder" Storyboard.TargetProperty="Opacity" To="0.1" Duration="0" /> </Storyboard> </VisualState> <VisualState Name="Disabled" /> </VisualStateGroup> <VisualStateGroup Name="SelectionStates"> <VisualStateGroup.Transitions> <VisualTransition GeneratedDuration="0:0:0.6" /> </VisualStateGroup.Transitions> <VisualState Name="Selected"> <Storyboard> <DoubleAnimation Storyboard.TargetName="SelectedBorder" Storyboard.TargetProperty="Opacity" To="1" Duration="0" /> </Storyboard> </VisualState> <VisualState Name="Unselected" /> <VisualState Name="SelectedUnfocused"> <Storyboard> <DoubleAnimation Storyboard.TargetName="SelectedBorder" Storyboard.TargetProperty="Opacity" To="1" Duration="0" /> </Storyboard> </VisualState> </VisualStateGroup> </VisualStateManager.VisualStateGroups> <Grid ClipToBounds="False"> <Grid> <Grid.Clip> <MultiBinding Converter="{x:Static converters:BorderClipConverter.Instance}"> <Binding ElementName="border" Path="ActualWidth" /> <Binding ElementName="border" Path="ActualHeight" /> <Binding ElementName="border" Path="CornerRadius" /> <Binding ElementName="border" Path="BorderThickness" /> </MultiBinding> </Grid.Clip> <Border x:Name="MouseOverBorder" Background="{TemplateBinding Foreground, Converter={x:Static converters:BrushRoundConverter.Instance}}" Opacity="0" /> <Border x:Name="SelectedBorder" Width="{Binding Path=(wpf:NavigationBarAssist.SelectionWidth), RelativeSource={RelativeSource TemplatedParent}}" Height="{Binding Path=(wpf:NavigationBarAssist.SelectionHeight), RelativeSource={RelativeSource TemplatedParent}}" Margin="0,12,0,16" VerticalAlignment="Top" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" CornerRadius="{Binding Path=(wpf:NavigationBarAssist.SelectionCornerRadius), RelativeSource={RelativeSource TemplatedParent}}" Opacity="0" /> <wpf:Ripple Padding="{TemplateBinding Padding}" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}" ContentTemplate="{TemplateBinding ContentTemplate}" ContentTemplateSelector="{TemplateBinding ContentTemplateSelector}" Feedback="{TemplateBinding Foreground, Converter={x:Static converters:BrushRoundConverter.Instance}}" Focusable="False" RecognizesAccessKey="False" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" /> </Grid> <Grid Margin="0,12,0,16" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"> <Grid.RowDefinitions> <RowDefinition Height="4*" /> <RowDefinition Height="3*" /> </Grid.RowDefinitions> <Grid x:Name="IconContainer" Grid.RowSpan="1" Height="{Binding Path=(wpf:NavigationBarAssist.SelectionHeight), RelativeSource={RelativeSource TemplatedParent}}" HorizontalAlignment="Stretch" VerticalAlignment="Stretch"> <wpf:Badged x:Name="badge" HorizontalAlignment="Center" VerticalAlignment="Center" Badge="{Binding Path=(wpf:BadgedAssist.Badge), RelativeSource={RelativeSource TemplatedParent}}" BadgeBackground="{Binding Path=(wpf:BadgedAssist.BadgeBackground), RelativeSource={RelativeSource TemplatedParent}}" BadgeForeground="{Binding Path=(wpf:BadgedAssist.BadgeForeground), RelativeSource={RelativeSource TemplatedParent}}" BadgePlacementMode="{Binding Path=(wpf:BadgedAssist.BadgePlacementMode), RelativeSource={RelativeSource TemplatedParent}}" Style="{StaticResource MaterialDesignBadge}"> <wpf:PackIcon x:Name="Icon" Width="{Binding Path=(wpf:NavigationBarAssist.IconSize), RelativeSource={RelativeSource TemplatedParent}}" Height="{Binding Path=(wpf:NavigationBarAssist.IconSize), RelativeSource={RelativeSource TemplatedParent}}" HorizontalAlignment="Center" VerticalAlignment="Center" Kind="{Binding Path=(wpf:NavigationBarAssist.SelectedIcon), RelativeSource={RelativeSource TemplatedParent}}" /> </wpf:Badged> </Grid> <ContentControl x:Name="Text" Grid.Row="1" Margin="4,4,4,0" Padding="0" HorizontalAlignment="Center" VerticalAlignment="Center" Content="{TemplateBinding Content}" /> </Grid> </Grid> </Border> <ControlTemplate.Triggers> <Trigger Property="IsEnabled" Value="False"> <Setter Property="Opacity" Value=".56" /> </Trigger> <Trigger Property="IsSelected" Value="False"> <Setter TargetName="Icon" Property="Kind" Value="{Binding Path=(wpf:NavigationBarAssist.UnselectedIcon), RelativeSource={RelativeSource TemplatedParent}}" /> </Trigger> <Trigger Property="wpf:NavigationBarAssist.IsTextVisible" Value="False"> <Setter TargetName="Text" Property="Visibility" Value="Collapsed" /> </Trigger> <Trigger Property="wpf:BadgedAssist.IsMiniBadge" Value="True"> <Setter TargetName="badge" Property="Style" Value="{StaticResource MaterialDesignMiniBadge}" /> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> <Setter Property="VerticalContentAlignment" Value="Stretch" /> <Setter Property="wpf:BadgedAssist.BadgeBackground" Value="{DynamicResource MaterialDesign.Brush.Primary.Light}" /> <Setter Property="wpf:BadgedAssist.BadgeForeground" Value="{DynamicResource MaterialDesign.Brush.Primary.Light.Foreground}" /> <Setter Property="wpf:BadgedAssist.BadgePlacementMode" Value="TopRight" /> <Setter Property="wpf:NavigationBarAssist.CornerRadius" Value="0" /> <Setter Property="wpf:NavigationBarAssist.IconSize" Value="24" /> <Setter Property="wpf:NavigationBarAssist.IsTextVisible" Value="True" /> <Setter Property="wpf:NavigationBarAssist.SelectedIcon" Value="Circle" /> <Setter Property="wpf:NavigationBarAssist.SelectionCornerRadius" Value="16" /> <Setter Property="wpf:NavigationBarAssist.SelectionHeight" Value="32" /> <Setter Property="wpf:NavigationBarAssist.SelectionWidth" Value="64" /> <Setter Property="wpf:NavigationBarAssist.UnselectedIcon" Value="CircleOutline" /> <Setter Property="wpf:ThemeAssist.TriggerBrush" Value="{DynamicResource MaterialDesign.Brush.Background}" /> </Style> <Style x:Key="MaterialDesign3.NavigationBarPrimaryListBoxItem" TargetType="{x:Type ListBoxItem}" BasedOn="{StaticResource MaterialDesign3.NavigationBarListBoxItem}"> <Setter Property="Background" Value="{DynamicResource MaterialDesign.Brush.Primary}" /> </Style> <Style x:Key="MaterialDesign3.NavigationBarListBox" TargetType="ListBox" BasedOn="{StaticResource MaterialDesignListBox}"> <Setter Property="ItemContainerStyle" Value="{StaticResource MaterialDesign3.NavigationBarListBoxItem}" /> <Setter Property="ItemsPanel"> <Setter.Value> <ItemsPanelTemplate> <UniformGrid Rows="1" /> </ItemsPanelTemplate> </Setter.Value> </Setter> </Style> <Style x:Key="MaterialDesign3.NavigationBarPrimaryListBox" TargetType="ListBox" BasedOn="{StaticResource MaterialDesign3.NavigationBarListBox}"> <Setter Property="ItemContainerStyle" Value="{StaticResource MaterialDesign3.NavigationBarPrimaryListBoxItem}" /> </Style> </ResourceDictionary> |