更新
This commit is contained in:
206
WPFDark/StandardControls/Menu.xaml
Normal file
206
WPFDark/StandardControls/Menu.xaml
Normal file
@@ -0,0 +1,206 @@
|
||||
<ResourceDictionary
|
||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||
xmlns:controls="clr-namespace:WPFDark.Controls"
|
||||
xmlns:wpf="clr-namespace:WPFDark"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||
|
||||
<Style TargetType="{x:Type MenuItem}" x:Key="MenuItemBaseStyle">
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="{x:Type MenuItem}">
|
||||
<Border
|
||||
Background="Transparent"
|
||||
BorderThickness="0"
|
||||
x:Name="Border">
|
||||
<Grid>
|
||||
<Grid.ColumnDefinitions>
|
||||
<ColumnDefinition
|
||||
MinWidth="20.0"
|
||||
SharedSizeGroup="ColumnGroupIcon"
|
||||
Width="Auto"
|
||||
x:Name="ColumnIcon" />
|
||||
<ColumnDefinition SharedSizeGroup="ColumnGroupHeader" Width="Auto" />
|
||||
<ColumnDefinition SharedSizeGroup="ColumnGroupInputGesture" Width="Auto" />
|
||||
<ColumnDefinition Width="14" x:Name="ColumnArrow" />
|
||||
</Grid.ColumnDefinitions>
|
||||
|
||||
<ContentPresenter
|
||||
ContentSource="Icon"
|
||||
Grid.Column="0"
|
||||
VerticalAlignment="Center"
|
||||
x:Name="IconPresenter" />
|
||||
|
||||
<ContentPresenter
|
||||
ContentSource="Header"
|
||||
Grid.Column="1"
|
||||
Margin="{TemplateBinding Padding}"
|
||||
RecognizesAccessKey="True"
|
||||
VerticalAlignment="Center" />
|
||||
|
||||
<ContentPresenter
|
||||
ContentSource="InputGestureText"
|
||||
Grid.Column="2"
|
||||
Margin="24,1,8,1"
|
||||
VerticalAlignment="Center"
|
||||
x:Name="InputGesturePresenter" />
|
||||
|
||||
<Path
|
||||
Data="M 4 0 L 8 4 L 4 8 Z"
|
||||
Fill="{DynamicResource ForegroundBrushKey}"
|
||||
Grid.Column="3"
|
||||
HorizontalAlignment="Right"
|
||||
Margin="4,0,6,0"
|
||||
VerticalAlignment="Center"
|
||||
x:Name="Arrow" />
|
||||
|
||||
<Popup
|
||||
AllowsTransparency="True"
|
||||
Focusable="False"
|
||||
Grid.Column="0"
|
||||
HorizontalOffset="-1"
|
||||
IsOpen="{Binding IsSubmenuOpen, RelativeSource={RelativeSource TemplatedParent}}"
|
||||
Placement="Right"
|
||||
PopupAnimation="None"
|
||||
SnapsToDevicePixels="True"
|
||||
UseLayoutRounding="True"
|
||||
x:Name="SubMenuPopup">
|
||||
|
||||
<controls:BiaClippingBorder
|
||||
Background="{DynamicResource SubmenuItemBackground}"
|
||||
BorderBrush="{DynamicResource MenuItemHighlightedBackground}"
|
||||
BorderThickness="1"
|
||||
Margin="0,0,8,8"
|
||||
SnapsToDevicePixels="True"
|
||||
UseLayoutRounding="True">
|
||||
<StackPanel
|
||||
Grid.IsSharedSizeScope="True"
|
||||
IsItemsHost="True"
|
||||
KeyboardNavigation.DirectionalNavigation="Cycle" />
|
||||
|
||||
<Border.Effect>
|
||||
<DropShadowEffect Color="Black" ShadowDepth="2.0" />
|
||||
</Border.Effect>
|
||||
</controls:BiaClippingBorder>
|
||||
</Popup>
|
||||
</Grid>
|
||||
</Border>
|
||||
|
||||
<ControlTemplate.Triggers>
|
||||
<Trigger Property="Role" Value="TopLevelHeader">
|
||||
<Setter Property="Padding" Value="8,4" />
|
||||
<Setter Property="Placement" TargetName="SubMenuPopup" Value="Bottom" />
|
||||
<Setter Property="MinWidth" TargetName="ColumnIcon" Value="0.0" />
|
||||
<Setter Property="Width" TargetName="ColumnArrow" Value="Auto" />
|
||||
<Setter Property="Visibility" TargetName="IconPresenter" Value="Collapsed" />
|
||||
<Setter Property="Visibility" TargetName="InputGesturePresenter" Value="Collapsed" />
|
||||
<Setter Property="Visibility" TargetName="Arrow" Value="Collapsed" />
|
||||
</Trigger>
|
||||
|
||||
<Trigger Property="Role" Value="TopLevelItem">
|
||||
<Setter Property="Padding" Value="8,4" />
|
||||
<Setter Property="MinWidth" TargetName="ColumnIcon" Value="0.0" />
|
||||
<Setter Property="Width" TargetName="ColumnArrow" Value="Auto" />
|
||||
<Setter Property="Visibility" TargetName="IconPresenter" Value="Collapsed" />
|
||||
<Setter Property="Visibility" TargetName="InputGesturePresenter" Value="Collapsed" />
|
||||
<Setter Property="Visibility" TargetName="Arrow" Value="Collapsed" />
|
||||
</Trigger>
|
||||
|
||||
<Trigger Property="Role" Value="SubmenuHeader">
|
||||
<Setter Property="DockPanel.Dock" Value="Top" />
|
||||
<Setter Property="Padding" Value="12,4,0,4" />
|
||||
<Setter Property="MinHeight" TargetName="Border" Value="24.0" />
|
||||
<Setter Property="Background" TargetName="Border" Value="{DynamicResource SubmenuItemBackground}" />
|
||||
</Trigger>
|
||||
|
||||
<Trigger Property="Role" Value="SubmenuItem">
|
||||
<Setter Property="DockPanel.Dock" Value="Top" />
|
||||
<Setter Property="Padding" Value="12,4,0,4" />
|
||||
<Setter Property="Visibility" TargetName="Arrow" Value="Collapsed" />
|
||||
<Setter Property="MinHeight" TargetName="Border" Value="24.0" />
|
||||
<Setter Property="Background" TargetName="Border" Value="{DynamicResource SubmenuItemBackground}" />
|
||||
</Trigger>
|
||||
|
||||
<MultiTrigger>
|
||||
<MultiTrigger.Conditions>
|
||||
<Condition Property="IsHighlighted" Value="True" />
|
||||
<Condition Property="Role" Value="TopLevelHeader" />
|
||||
</MultiTrigger.Conditions>
|
||||
|
||||
<Setter Property="Background" TargetName="Border" Value="{DynamicResource MenuItemHighlightedBackground}" />
|
||||
</MultiTrigger>
|
||||
|
||||
<MultiTrigger>
|
||||
<MultiTrigger.Conditions>
|
||||
<Condition Property="IsHighlighted" Value="True" />
|
||||
<Condition Property="Role" Value="TopLevelItem" />
|
||||
</MultiTrigger.Conditions>
|
||||
|
||||
<Setter Property="Background" TargetName="Border" Value="{DynamicResource MenuItemHighlightedBackground}" />
|
||||
</MultiTrigger>
|
||||
|
||||
<MultiTrigger>
|
||||
<MultiTrigger.Conditions>
|
||||
<Condition Property="IsHighlighted" Value="True" />
|
||||
<Condition Property="Role" Value="SubmenuHeader" />
|
||||
</MultiTrigger.Conditions>
|
||||
|
||||
<Setter Property="Background" TargetName="Border" Value="{DynamicResource SubmenuItemBackgroundHighlighted}" />
|
||||
</MultiTrigger>
|
||||
|
||||
<MultiTrigger>
|
||||
<MultiTrigger.Conditions>
|
||||
<Condition Property="IsHighlighted" Value="True" />
|
||||
<Condition Property="Role" Value="SubmenuItem" />
|
||||
</MultiTrigger.Conditions>
|
||||
|
||||
<Setter Property="Background" TargetName="Border" Value="{DynamicResource SubmenuItemBackgroundHighlighted}" />
|
||||
</MultiTrigger>
|
||||
|
||||
<MultiTrigger>
|
||||
<MultiTrigger.Conditions>
|
||||
<Condition Property="IsSubmenuOpen" Value="True" />
|
||||
<Condition Property="Role" Value="TopLevelHeader" />
|
||||
</MultiTrigger.Conditions>
|
||||
|
||||
<Setter Property="Background" TargetName="Border" Value="{DynamicResource SubmenuItemBackground}" />
|
||||
<Setter Property="BorderBrush" TargetName="Border" Value="{DynamicResource MenuSeparatorBorderBrush}" />
|
||||
</MultiTrigger>
|
||||
|
||||
<Trigger Property="IsSubmenuOpen" Value="True">
|
||||
<Setter Property="Fill" TargetName="Arrow" Value="{DynamicResource AccentBrushKey}" />
|
||||
</Trigger>
|
||||
|
||||
<Trigger Property="Icon" Value="{x:Null}">
|
||||
<Setter Property="Visibility" TargetName="IconPresenter" Value="Collapsed" />
|
||||
</Trigger>
|
||||
|
||||
<Trigger Property="IsEnabled" Value="False">
|
||||
<Setter Property="Foreground" Value="{DynamicResource InactiveForegroundBrushKey}" />
|
||||
</Trigger>
|
||||
</ControlTemplate.Triggers>
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style TargetType="{x:Type Menu}">
|
||||
<Setter Property="FontFamily" Value="{DynamicResource WPFDarkFontFamily}" />
|
||||
<Setter Property="Background" Value="Transparent" />
|
||||
<Setter Property="FocusVisualStyle" Value="{x:Null}" />
|
||||
|
||||
<Style.Resources>
|
||||
<Style TargetType="{x:Type Separator}" x:Key="{x:Static MenuItem.SeparatorStyleKey}">
|
||||
<Setter Property="Height" Value="1.0" />
|
||||
<Setter Property="Template">
|
||||
<Setter.Value>
|
||||
<ControlTemplate TargetType="{x:Type Separator}">
|
||||
<Rectangle Fill="{DynamicResource MenuSeparatorBorderBrush}" />
|
||||
</ControlTemplate>
|
||||
</Setter.Value>
|
||||
</Setter>
|
||||
</Style>
|
||||
|
||||
<Style BasedOn="{StaticResource MenuItemBaseStyle}" TargetType="{x:Type MenuItem}" />
|
||||
</Style.Resources>
|
||||
</Style>
|
||||
</ResourceDictionary>
|
||||
Reference in New Issue
Block a user