Themes/MaterialDesignTheme.ToolBar.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.CheckBox.xaml" /> <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.ComboBox.xaml" /> <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Menu.xaml" /> <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.RadioButton.xaml" /> <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Shadows.xaml" /> <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.TextBox.xaml" /> <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Button.xaml" /> <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.ToggleButton.xaml" /> <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.Font.xaml" /> <ResourceDictionary Source="pack://application:,,,/MaterialDesignThemes.Wpf;component/Themes/MaterialDesignTheme.ListBox.xaml" /> </ResourceDictionary.MergedDictionaries> <Style x:Key="MaterialDesignToolBarVerticalOverflowButtonStyle" TargetType="{x:Type ToggleButton}"> <Setter Property="Background" Value="{DynamicResource MaterialDesign.Brush.ToolBar.Background}" /> <Setter Property="MinHeight" Value="0" /> <Setter Property="MinWidth" Value="0" /> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type ToggleButton}"> <Border x:Name="Bd" Background="{TemplateBinding Background}" CornerRadius="0,0,3,3" SnapsToDevicePixels="true"> <Viewbox Width="16" Height="16"> <Canvas Width="24" Height="24"> <Path Data="M12,16A2,2 0 0,1 14,18A2,2 0 0,1 12,20A2,2 0 0,1 10,18A2,2 0 0,1 12,16M12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12A2,2 0 0,1 12,10M12,4A2,2 0 0,1 14,6A2,2 0 0,1 12,8A2,2 0 0,1 10,6A2,2 0 0,1 12,4Z" Fill="{TemplateBinding Foreground}" /> </Canvas> </Viewbox> </Border> <ControlTemplate.Triggers> <Trigger Property="IsMouseOver" Value="true"> <!-- Setter Property="Background" TargetName="Bd" Value="{StaticResource ToolBarButtonHover}"/ --> </Trigger> <Trigger Property="IsKeyboardFocused" Value="true"> <!-- Setter Property="Background" TargetName="Bd" Value="{StaticResource ToolBarButtonHover}"/ --> </Trigger> <Trigger Property="IsEnabled" Value="false"> <Setter Property="Opacity" Value=".56" /> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> <Style.Triggers> <DataTrigger Binding="{Binding Source={x:Static SystemParameters.HighContrast}}" Value="true"> <Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.ControlBrushKey}}" /> </DataTrigger> </Style.Triggers> </Style> <Style x:Key="MaterialDesignToolBarHorizontalOverflowButtonStyle" TargetType="{x:Type ToggleButton}"> <Setter Property="Background" Value="{DynamicResource MaterialDesign.Brush.ToolBar.Background}" /> <Setter Property="MinHeight" Value="0" /> <Setter Property="MinWidth" Value="0" /> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type ToggleButton}"> <Border x:Name="Bd" Background="{TemplateBinding Background}" CornerRadius="0,3,3,0" SnapsToDevicePixels="true"> <Viewbox Width="16" Height="16" Margin="8,0,8,0"> <Canvas Width="24" Height="24"> <Path Data="M12,16A2,2 0 0,1 14,18A2,2 0 0,1 12,20A2,2 0 0,1 10,18A2,2 0 0,1 12,16M12,10A2,2 0 0,1 14,12A2,2 0 0,1 12,14A2,2 0 0,1 10,12A2,2 0 0,1 12,10M12,4A2,2 0 0,1 14,6A2,2 0 0,1 12,8A2,2 0 0,1 10,6A2,2 0 0,1 12,4Z" Fill="{TemplateBinding Foreground}" /> </Canvas> </Viewbox> </Border> <ControlTemplate.Triggers> <Trigger Property="IsMouseOver" Value="true"> <!-- Setter Property="Background" TargetName="Bd" Value="{StaticResource ToolBarButtonHover}"/ --> </Trigger> <Trigger Property="IsKeyboardFocused" Value="true"> <!-- Setter Property="Background" TargetName="Bd" Value="{StaticResource ToolBarButtonHover}"/ --> </Trigger> <Trigger Property="IsEnabled" Value="false"> <Setter Property="Opacity" Value=".56" /> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> <Style.Triggers> <DataTrigger Binding="{Binding Source={x:Static SystemParameters.HighContrast}}" Value="true"> <Setter Property="Background" Value="{DynamicResource {x:Static SystemColors.ControlBrushKey}}" /> </DataTrigger> </Style.Triggers> </Style> <Style x:Key="MaterialDesignToolBarThumbStyle" TargetType="{x:Type Thumb}"> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type Thumb}"> <Border Padding="{TemplateBinding Padding}" Background="Transparent" SnapsToDevicePixels="True"> <Rectangle> <Rectangle.Fill> <DrawingBrush TileMode="Tile" Viewbox="0,0,4,4" ViewboxUnits="Absolute" Viewport="0,0,4,4" ViewportUnits="Absolute"> <DrawingBrush.Drawing> <GeometryDrawing Brush="{DynamicResource MaterialDesign.Brush.ToolBar.Thumb.Foreground}" Geometry="M 0 0 L 0 2 L 2 2 L 2 0 z" /> </DrawingBrush.Drawing> </DrawingBrush> </Rectangle.Fill> </Rectangle> </Border> <ControlTemplate.Triggers> <Trigger Property="IsMouseOver" Value="true"> <Setter Property="Cursor" Value="SizeAll" /> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> </Style> <Style x:Key="MaterialDesignToolBarMainPanelBorderStyle" TargetType="{x:Type Border}"> <Setter Property="CornerRadius" Value="3,3,3,3" /> <Setter Property="Margin" Value="0,0,11,0" /> </Style> <Style x:Key="MaterialDesignToolBar" TargetType="{x:Type ToolBar}"> <Setter Property="Background" Value="{DynamicResource MaterialDesign.Brush.ToolBar.Background}" /> <Setter Property="ClipToBounds" Value="True" /> <Setter Property="Foreground" Value="{DynamicResource MaterialDesign.Brush.Foreground}" /> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type ToolBar}"> <ControlTemplate.Resources> <Style TargetType="{x:Type wpf:PackIcon}"> <Setter Property="FrameworkElement.Height" Value="22" /> <Setter Property="FrameworkElement.Width" Value="22" /> </Style> <Style TargetType="ListBox" BasedOn="{StaticResource MaterialDesignToolToggleFlatListBox}"> <Setter Property="ItemContainerStyle"> <Setter.Value> <Style TargetType="ListBoxItem" BasedOn="{StaticResource MaterialDesignToolToggleListBoxItem}"> <Setter Property="HorizontalContentAlignment" Value="Center" /> <Setter Property="MinWidth" Value="54" /> <Setter Property="Padding" Value="16" /> <Setter Property="TextBlock.FontSize" Value="18" /> <Setter Property="TextBlock.FontWeight" Value="DemiBold" /> </Style> </Setter.Value> </Setter> </Style> </ControlTemplate.Resources> <DockPanel x:Name="Grid" Margin="3,1,1,1" Background="{TemplateBinding Background}" SnapsToDevicePixels="true"> <Grid x:Name="OverflowGrid" HorizontalAlignment="Right" DockPanel.Dock="Right"> <ToggleButton x:Name="OverflowButton" ClickMode="Press" FocusVisualStyle="{x:Null}" Foreground="{TemplateBinding Foreground}" IsChecked="{Binding IsOverflowOpen, Mode=TwoWay, RelativeSource={RelativeSource TemplatedParent}}" Style="{StaticResource MaterialDesignToolBarHorizontalOverflowButtonStyle}"> <ToggleButton.Visibility> <MultiBinding Converter="{x:Static converters:ToolBarOverflowButtonVisibilityConverter.Instance}"> <Binding Path="OverflowMode" RelativeSource="{RelativeSource TemplatedParent}" /> <Binding Path="HasOverflowItems" RelativeSource="{RelativeSource TemplatedParent}" /> </MultiBinding> </ToggleButton.Visibility> </ToggleButton> <Popup x:Name="OverflowPopup" Margin="1" AllowsTransparency="true" Focusable="false" IsOpen="{Binding IsOverflowOpen, RelativeSource={RelativeSource TemplatedParent}}" Placement="Bottom" PopupAnimation="{DynamicResource {x:Static SystemParameters.ComboBoxPopupAnimationKey}}" StaysOpen="false" CacheMode="{Binding RelativeSource={RelativeSource Self}, Path=(wpf:ShadowAssist.CacheMode)}"> <Border x:Name="ToolBarSubMenuBorder" Margin="1" Background="{DynamicResource MaterialDesign.Brush.ToolBar.Background}" BorderBrush="{DynamicResource MaterialDesign.Brush.ToolBar.Overflow.Border}" BorderThickness="1" CornerRadius="2" Effect="{StaticResource MaterialDesignShadowDepth2}" RenderOptions.ClearTypeHint="Enabled" TextBlock.FontWeight="ExtraBold"> <Border Background="Transparent"> <ToolBarOverflowPanel x:Name="PART_ToolBarOverflowPanel" Margin="2" FocusVisualStyle="{x:Null}" Focusable="true" KeyboardNavigation.DirectionalNavigation="Cycle" KeyboardNavigation.TabNavigation="Cycle" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" WrapWidth="200" /> </Border> </Border> </Popup> </Grid> <Border x:Name="MainPanelBorder" Padding="{TemplateBinding Padding}" Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Style="{StaticResource MaterialDesignToolBarMainPanelBorderStyle}"> <DockPanel KeyboardNavigation.TabIndex="1" KeyboardNavigation.TabNavigation="Local"> <Thumb x:Name="ToolBarThumb" Width="10" Margin="-3,-1,4,0" Padding="6,5,1,3" Style="{StaticResource MaterialDesignToolBarThumbStyle}" /> <ContentPresenter x:Name="ToolBarHeader" Margin="4,0,4,0" HorizontalAlignment="Center" VerticalAlignment="Center" ContentSource="Header" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" /> <ToolBarPanel x:Name="PART_ToolBarPanel" Margin="0,0,2,0" IsItemsHost="true" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" /> </DockPanel> </Border> </DockPanel> <ControlTemplate.Triggers> <Trigger Property="IsOverflowOpen" Value="true"> <Setter TargetName="ToolBarThumb" Property="IsEnabled" Value="false" /> </Trigger> <Trigger Property="Header" Value="{x:Null}"> <Setter TargetName="ToolBarHeader" Property="Visibility" Value="Collapsed" /> </Trigger> <Trigger Property="ToolBarTray.IsLocked" Value="true"> <Setter TargetName="ToolBarThumb" Property="Visibility" Value="Collapsed" /> </Trigger> <Trigger SourceName="OverflowPopup" Property="HasDropShadow" Value="true"> <Setter TargetName="ToolBarSubMenuBorder" Property="Margin" Value="5,5,5,5" /> </Trigger> <Trigger Property="Orientation" Value="Vertical"> <Setter Property="Background" Value="{DynamicResource MaterialDesign.Brush.ToolBar.Background}" /> <Setter TargetName="Grid" Property="Margin" Value="1,3,1,1" /> <Setter TargetName="MainPanelBorder" Property="Margin" Value="0,0,0,11" /> <Setter TargetName="OverflowButton" Property="Style" Value="{StaticResource MaterialDesignToolBarVerticalOverflowButtonStyle}" /> <Setter TargetName="OverflowGrid" Property="DockPanel.Dock" Value="Bottom" /> <Setter TargetName="OverflowGrid" Property="HorizontalAlignment" Value="Stretch" /> <Setter TargetName="OverflowGrid" Property="VerticalAlignment" Value="Bottom" /> <Setter TargetName="OverflowPopup" Property="Placement" Value="Right" /> <Setter TargetName="PART_ToolBarPanel" Property="Margin" Value="1,0,2,2" /> <Setter TargetName="ToolBarHeader" Property="DockPanel.Dock" Value="Top" /> <Setter TargetName="ToolBarHeader" Property="Margin" Value="0,0,0,4" /> <Setter TargetName="ToolBarThumb" Property="DockPanel.Dock" Value="Top" /> <Setter TargetName="ToolBarThumb" Property="Height" Value="10" /> <Setter TargetName="ToolBarThumb" Property="Margin" Value="-1,-3,0,0" /> <Setter TargetName="ToolBarThumb" Property="Padding" Value="5,6,6,1" /> <Setter TargetName="ToolBarThumb" Property="Width" Value="Auto" /> </Trigger> <Trigger Property="IsEnabled" Value="false"> <Setter Property="Opacity" Value=".56" /> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> </Style> <Style x:Key="{x:Static ToolBar.CheckBoxStyleKey}" TargetType="{x:Type CheckBox}" BasedOn="{StaticResource MaterialDesignCheckBox}"> <Setter Property="Margin" Value="8,0,8,0" /> </Style> <Style x:Key="{x:Static ToolBar.ComboBoxStyleKey}" TargetType="{x:Type ComboBox}" BasedOn="{StaticResource MaterialDesignComboBox}"> <Setter Property="Margin" Value="8,0,8,0" /> </Style> <Style x:Key="{x:Static ToolBar.MenuStyleKey}" TargetType="{x:Type Menu}" BasedOn="{StaticResource MaterialDesignMenu}"> <Setter Property="Margin" Value="8,0,8,0" /> </Style> <Style x:Key="{x:Static ToolBar.RadioButtonStyleKey}" TargetType="{x:Type RadioButton}" BasedOn="{StaticResource MaterialDesignRadioButton}"> <Setter Property="Margin" Value="8,0,8,0" /> </Style> <Style x:Key="{x:Static ToolBar.SeparatorStyleKey}" TargetType="Separator"> <Setter Property="Background" Value="{DynamicResource MaterialDesign.Brush.ToolBar.Separator}" /> <Setter Property="BorderBrush" Value="{DynamicResource MaterialDesign.Brush.ToolBar.Separator}" /> <Setter Property="Margin" Value="6,11,6,11" /> <Setter Property="MinHeight" Value="1" /> <Setter Property="SnapsToDevicePixels" Value="true" /> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type Separator}"> <Border Background="{TemplateBinding Background}" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" /> </ControlTemplate> </Setter.Value> </Setter> </Style> <Style x:Key="{x:Static ToolBar.TextBoxStyleKey}" TargetType="{x:Type TextBox}" BasedOn="{StaticResource MaterialDesignTextBox}"> <Setter Property="Margin" Value="8,0,8,0" /> </Style> <Style x:Key="{x:Static ToolBar.ToggleButtonStyleKey}" TargetType="{x:Type ToggleButton}" BasedOn="{StaticResource MaterialDesignSwitchToggleButton}"> <Setter Property="Margin" Value="8,0,8,0" /> </Style> <Style x:Key="{x:Static ToolBar.ButtonStyleKey}" TargetType="Button"> <Setter Property="BorderThickness" Value="1" /> <Setter Property="Foreground" Value="{DynamicResource MaterialDesign.Brush.Foreground}" /> <Setter Property="HorizontalContentAlignment" Value="Center" /> <Setter Property="Padding" Value="16" /> <Setter Property="Template"> <Setter.Value> <ControlTemplate TargetType="{x:Type Button}"> <Border x:Name="border" Background="Transparent" CornerRadius="2"> <wpf:Ripple Padding="{TemplateBinding Padding}" HorizontalContentAlignment="{TemplateBinding HorizontalContentAlignment}" VerticalContentAlignment="{TemplateBinding VerticalContentAlignment}" Content="{TemplateBinding Content}" ContentTemplate="{TemplateBinding ContentTemplate}" Feedback="{TemplateBinding Foreground}" Focusable="False" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}" /> </Border> <ControlTemplate.Triggers> <Trigger Property="IsEnabled" Value="false"> <Setter Property="Opacity" Value=".56" /> </Trigger> <Trigger Property="IsMouseOver" Value="true"> <Setter TargetName="border" Property="Background" Value="{DynamicResource MaterialDesign.Brush.Button.FlatClick}" /> <Setter TargetName="border" Property="BorderBrush" Value="{DynamicResource MaterialDesign.Brush.Button.FlatClick}" /> </Trigger> </ControlTemplate.Triggers> </ControlTemplate> </Setter.Value> </Setter> <Setter Property="TextBlock.FontWeight" Value="DemiBold" /> <Setter Property="VerticalContentAlignment" Value="Center" /> <Setter Property="wpf:RippleAssist.Feedback" Value="{DynamicResource MaterialDesign.Brush.Button.Ripple}" /> </Style> </ResourceDictionary> |