|
@@ -1,60 +1,127 @@
|
|
|
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
|
|
- xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
|
|
- xmlns:local="clr-namespace:PixiEditor.Styles">
|
|
|
- <Style TargetType="Button" x:Key="MenuButton">
|
|
|
- <Setter Property="Height" Value="30"/>
|
|
|
- <Setter Property="Width" Value="60"/>
|
|
|
- <Setter Property="Background" Value="Transparent"/>
|
|
|
- <Setter Property="Foreground" Value="Snow"/>
|
|
|
- <Setter Property="BorderThickness" Value="0"/>
|
|
|
- </Style>
|
|
|
-
|
|
|
- <Style TargetType="Button" x:Key="MenuInsideButtonStyle">
|
|
|
- <Setter Property="Height" Value="20"/>
|
|
|
- <Setter Property="Width" Value="185"/>
|
|
|
- <Setter Property="Background" Value="Transparent"/>
|
|
|
- <Setter Property="Foreground" Value="Snow"/>
|
|
|
- <Setter Property="BorderThickness" Value="0"/>
|
|
|
- <Setter Property="HorizontalContentAlignment" Value="Left"/>
|
|
|
- <Setter Property="OverridesDefaultStyle" Value="True"/>
|
|
|
- <Setter Property="DataContext" Value="{DynamicResource ViewModelMain}"/>
|
|
|
+ xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
|
|
+
|
|
|
+ <Style x:Key="parentMenuItem" TargetType="{x:Type MenuItem}">
|
|
|
+ <Setter Property="Foreground" Value="{Binding Path=Foreground, RelativeSource={RelativeSource AncestorType={x:Type Menu}}}"/>
|
|
|
+ <Setter Property="FontSize" Value="12"/>
|
|
|
+ <Setter Property="Margin" Value="5,0,0,5"/>
|
|
|
<Setter Property="Template">
|
|
|
<Setter.Value>
|
|
|
- <ControlTemplate TargetType="Button">
|
|
|
- <Grid Background="{TemplateBinding Background}">
|
|
|
- <ContentPresenter x:Name="MyContentPresenter"
|
|
|
- Content="{TemplateBinding Content}"/>
|
|
|
- </Grid>
|
|
|
+ <ControlTemplate TargetType="{x:Type MenuItem}">
|
|
|
+ <Border x:Name="Border"
|
|
|
+ Background="Transparent"
|
|
|
+ BorderBrush="{TemplateBinding BorderBrush}"
|
|
|
+ BorderThickness="0">
|
|
|
+ <Grid>
|
|
|
+ <Grid.ColumnDefinitions>
|
|
|
+ <ColumnDefinition x:Name="Col0" MinWidth="17" Width="Auto" SharedSizeGroup="MenuItemIconColumnGroup"/>
|
|
|
+ <ColumnDefinition Width="Auto" SharedSizeGroup="MenuTextColumnGroup"/>
|
|
|
+ <ColumnDefinition Width="Auto" SharedSizeGroup="MenuItemIGTColumnGroup"/>
|
|
|
+ <ColumnDefinition x:Name="Col3" Width="14"/>
|
|
|
+ </Grid.ColumnDefinitions>
|
|
|
+
|
|
|
+ <!-- ContentPresenter to show an Icon if needed -->
|
|
|
+ <ContentPresenter Grid.Column="0" Margin="4,0,6,0" x:Name="Icon" VerticalAlignment="Center" ContentSource="Icon"/>
|
|
|
+
|
|
|
+ <!-- Glyph is a checkmark if needed for a checkable menu -->
|
|
|
+ <Grid Grid.Column="0" Visibility="Hidden" Margin="4,0,6,0" x:Name="GlyphPanel" VerticalAlignment="Center">
|
|
|
+ <Path x:Name="GlyphPanelpath" VerticalAlignment="Center" Fill="{TemplateBinding Foreground}" Data="M0,2 L0,4.8 L2.5,7.4 L7.1,2.8 L7.1,0 L2.5,4.6 z" FlowDirection="LeftToRight"/>
|
|
|
+ </Grid>
|
|
|
+
|
|
|
+ <!-- Content for the menu text etc -->
|
|
|
+ <ContentPresenter Grid.Column="1"
|
|
|
+ Margin="{TemplateBinding Padding}"
|
|
|
+ x:Name="HeaderHost"
|
|
|
+ RecognizesAccessKey="True"
|
|
|
+ ContentSource="Header"/>
|
|
|
+
|
|
|
+ <!-- Content for the menu IGT -->
|
|
|
+ <ContentPresenter Grid.Column="2"
|
|
|
+ Margin="8,1,8,1"
|
|
|
+ x:Name="IGTHost"
|
|
|
+ ContentSource="InputGestureText"
|
|
|
+ VerticalAlignment="Center"/>
|
|
|
+
|
|
|
+ <!-- Arrow drawn path which points to the next level of the menu -->
|
|
|
+ <Grid Grid.Column="3" Margin="4,0,6,0" x:Name="ArrowPanel" VerticalAlignment="Center">
|
|
|
+ <Path x:Name="ArrowPanelPath" HorizontalAlignment="Right" VerticalAlignment="Center" Fill="{TemplateBinding Foreground}" Data="M0,0 L0,8 L4,4 z"/>
|
|
|
+ </Grid>
|
|
|
+
|
|
|
+ <!-- The Popup is the body of the menu which expands down or across depending on the level of the item -->
|
|
|
+ <Popup IsOpen="{Binding Path=IsSubmenuOpen, RelativeSource={RelativeSource TemplatedParent}}" Placement="Right" x:Name="SubMenuPopup" Focusable="false" PopupAnimation="{DynamicResource {x:Static SystemParameters.MenuPopupAnimationKey}}">
|
|
|
+ <Border x:Name="SubMenuBorder" Background="#202020" BorderBrush="{Binding Path=Foreground, RelativeSource={RelativeSource AncestorType={x:Type Menu}}}" BorderThickness="1" Padding="2,2,2,2">
|
|
|
+ <Grid x:Name="SubMenu" Grid.IsSharedSizeScope="True">
|
|
|
+ <!-- StackPanel holds children of the menu. This is set by IsItemsHost=True -->
|
|
|
+ <StackPanel IsItemsHost="True" KeyboardNavigation.DirectionalNavigation="Cycle"/>
|
|
|
+ </Grid>
|
|
|
+ </Border>
|
|
|
+ </Popup>
|
|
|
+ </Grid>
|
|
|
+ </Border>
|
|
|
+
|
|
|
+ <!-- These triggers re-configure the four arrangements of MenuItem to show different levels of menu via Role -->
|
|
|
+ <ControlTemplate.Triggers>
|
|
|
+ <!-- Role = TopLevelHeader : this is the root menu item in a menu; the Popup expands down -->
|
|
|
+ <Trigger Property="Role" Value="TopLevelHeader">
|
|
|
+ <Setter Property="Padding" Value="6,1,6,1"/>
|
|
|
+ <Setter Property="Placement" Value="Bottom" TargetName="SubMenuPopup"/>
|
|
|
+ <Setter Property="MinWidth" Value="0" TargetName="Col0"/>
|
|
|
+ <Setter Property="Width" Value="Auto" TargetName="Col3"/>
|
|
|
+ <Setter Property="Visibility" Value="Collapsed" TargetName="Icon"/>
|
|
|
+ <Setter Property="Visibility" Value="Collapsed" TargetName="GlyphPanel"/>
|
|
|
+ <Setter Property="Visibility" Value="Collapsed" TargetName="IGTHost"/>
|
|
|
+ <Setter Property="Visibility" Value="Collapsed" TargetName="ArrowPanel"/>
|
|
|
+ </Trigger>
|
|
|
+
|
|
|
+ <!-- Role = TopLevelItem : this is a child menu item from the top level without any child items-->
|
|
|
+ <Trigger Property="Role" Value="TopLevelItem">
|
|
|
+ <Setter Property="Padding" Value="6,1,6,1"/>
|
|
|
+ <Setter Property="Visibility" Value="Collapsed" TargetName="ArrowPanel"/>
|
|
|
+ </Trigger>
|
|
|
+
|
|
|
+ <!-- Role = SubMenuHeader : this is a child menu item which does not have children -->
|
|
|
+ <Trigger Property="Role" Value="SubmenuHeader">
|
|
|
+ <Setter Property="DockPanel.Dock" Value="Top"/>
|
|
|
+ <Setter Property="Padding" Value="0,2,0,2"/>
|
|
|
+ </Trigger>
|
|
|
+
|
|
|
+ <!-- Role = SubMenuItem : this is a child menu item which has children-->
|
|
|
+ <Trigger Property="Role" Value="SubmenuItem">
|
|
|
+ <Setter Property="DockPanel.Dock" Value="Top"/>
|
|
|
+ <Setter Property="Padding" Value="0,2,0,2"/>
|
|
|
+ <Setter Property="Visibility" Value="Collapsed" TargetName="ArrowPanel"/>
|
|
|
+ </Trigger>
|
|
|
+ <Trigger Property="IsSuspendingPopupAnimation" Value="true">
|
|
|
+ <Setter Property="PopupAnimation" Value="None" TargetName="SubMenuPopup"/>
|
|
|
+ </Trigger>
|
|
|
+
|
|
|
+ <!-- If no Icon is present the we collapse the Icon Content -->
|
|
|
+ <Trigger Property="Icon" Value="{x:Null}">
|
|
|
+ <Setter Property="Visibility" Value="Collapsed" TargetName="Icon"/>
|
|
|
+ </Trigger>
|
|
|
+
|
|
|
+ <!-- The GlyphPanel contains the CheckMark -->
|
|
|
+ <Trigger Property="IsChecked" Value="true">
|
|
|
+ <Setter Property="Visibility" Value="Visible" TargetName="GlyphPanel"/>
|
|
|
+ <Setter Property="Visibility" Value="Collapsed" TargetName="Icon"/>
|
|
|
+ </Trigger>
|
|
|
+
|
|
|
+ <!-- Using the system colors for the Menu Highlight and IsEnabled-->
|
|
|
+ <Trigger Property="IsHighlighted" Value="true">
|
|
|
+ <Setter Property="Background" Value="#33000000" TargetName="Border"/>
|
|
|
+ <Setter Property="Foreground" Value="Black"/>
|
|
|
+ </Trigger>
|
|
|
+ <Trigger Property="IsEnabled" Value="true">
|
|
|
+ <Setter Property="Foreground" Value="Snow"/>
|
|
|
+ </Trigger>
|
|
|
+ <Trigger Property="IsEnabled" Value="false">
|
|
|
+ <Setter Property="Foreground" Value="LightGray"/>
|
|
|
+ </Trigger>
|
|
|
+ </ControlTemplate.Triggers>
|
|
|
</ControlTemplate>
|
|
|
</Setter.Value>
|
|
|
</Setter>
|
|
|
- <Style.Triggers>
|
|
|
- <Trigger Property="IsEnabled" Value="False">
|
|
|
- <Setter Property="Background" Value="Transparent"/>
|
|
|
- <Setter Property="Foreground" Value="DarkGray"/>
|
|
|
- </Trigger>
|
|
|
- <Trigger Property="IsMouseOver" Value="True">
|
|
|
- <Setter Property="Background" Value="#666666"/>
|
|
|
- </Trigger>
|
|
|
- </Style.Triggers>
|
|
|
</Style>
|
|
|
|
|
|
- <Style TargetType="ListView" x:Key="MenuListViewStyle">
|
|
|
- <Setter Property="Background" Value="#343636"/>
|
|
|
- <Setter Property="Height" Value="300"/>
|
|
|
- <Setter Property="Width" Value="200"/>
|
|
|
- <Style.Resources>
|
|
|
- <Style TargetType="ContentControl">
|
|
|
- <Setter Property="Foreground" Value="Snow"/>
|
|
|
- <Setter Property="Margin" Value="0,0,0,2"/>
|
|
|
- <Setter Property="Background" Value="Transparent"/>
|
|
|
- <Setter Property="BorderThickness" Value="0"/>
|
|
|
- <Setter Property="HorizontalContentAlignment" Value="Left"/>
|
|
|
- <Setter Property="Height" Value="290"/>
|
|
|
- <Setter Property="Width" Value="185"/>
|
|
|
- </Style>
|
|
|
- </Style.Resources>
|
|
|
- </Style>
|
|
|
-
|
|
|
|
|
|
</ResourceDictionary>
|