feat: WIP some brushes and icon path data. Update height and width limitation.
This commit is contained in:
parent
30842b9150
commit
12c75c1573
@ -37,6 +37,44 @@
|
||||
<MenuItem Header="_Second">
|
||||
<MenuItem Header="Second _Menu Item" />
|
||||
</MenuItem>
|
||||
<MenuItem Header="Parent">
|
||||
<MenuItem Header="Child 1" />
|
||||
<MenuItem Header="Child 2" />
|
||||
<MenuItem Header="Child 3" />
|
||||
<Separator />
|
||||
<MenuItem Header="Child 4" />
|
||||
<MenuItem Header="Child 5" />
|
||||
<MenuItem Header="Child 6" />
|
||||
<MenuItem Header="Child 7" />
|
||||
<MenuItem Header="Child 8" />
|
||||
<MenuItem Header="Child 9" />
|
||||
<MenuItem Header="Child 10" />
|
||||
<MenuItem Header="Child 11" />
|
||||
<MenuItem Header="Child 12" />
|
||||
<MenuItem Header="Child 13" />
|
||||
<MenuItem Header="Child 14" />
|
||||
<MenuItem Header="Child 15" />
|
||||
<MenuItem Header="Child 16" />
|
||||
<MenuItem Header="Child 17" />
|
||||
<MenuItem Header="Child 18" />
|
||||
<MenuItem Header="Child 19" />
|
||||
<MenuItem Header="Child 4" />
|
||||
<MenuItem Header="Child 5" />
|
||||
<MenuItem Header="Child 6" />
|
||||
<MenuItem Header="Child 7" />
|
||||
<MenuItem Header="Child 8" />
|
||||
<MenuItem Header="Child 9" />
|
||||
<MenuItem Header="Child 10" />
|
||||
<MenuItem Header="Child 11" />
|
||||
<MenuItem Header="Child 12" />
|
||||
<MenuItem Header="Child 13" />
|
||||
<MenuItem Header="Child 14" />
|
||||
<MenuItem Header="Child 15" />
|
||||
<MenuItem Header="Child 16" />
|
||||
<MenuItem Header="Child 17" />
|
||||
<MenuItem Header="Child 18" />
|
||||
<MenuItem Header="Child 19" />
|
||||
</MenuItem>
|
||||
</Menu>
|
||||
</StackPanel>
|
||||
</UserControl>
|
||||
|
@ -8,14 +8,20 @@
|
||||
<ControlTheme x:Key="MenuScrollViewer" TargetType="ScrollViewer">
|
||||
<Setter Property="Background" Value="Transparent" />
|
||||
<Setter Property="Template">
|
||||
<ControlTemplate>
|
||||
<ControlTemplate TargetType="ScrollViewer">
|
||||
<DockPanel>
|
||||
<DockPanel.Styles>
|
||||
<Style Selector="RepeatButton:pressed">
|
||||
<Setter Property="RenderTransform" Value="{x:Null}" />
|
||||
</Style>
|
||||
</DockPanel.Styles>
|
||||
<RepeatButton
|
||||
HorizontalAlignment="Stretch"
|
||||
HorizontalContentAlignment="Center"
|
||||
Background="Transparent"
|
||||
BorderThickness="0"
|
||||
Command="{Binding LineUp, RelativeSource={RelativeSource TemplatedParent}}"
|
||||
CornerRadius="0"
|
||||
DockPanel.Dock="Top"
|
||||
RenderTransform="{x:Null}">
|
||||
<RepeatButton.IsVisible>
|
||||
@ -26,15 +32,11 @@
|
||||
<Binding Path="Viewport.Height" RelativeSource="{RelativeSource TemplatedParent}" />
|
||||
</MultiBinding>
|
||||
</RepeatButton.IsVisible>
|
||||
<Viewbox Width="{DynamicResource ScrollBarButtonArrowIconFontSize}" Height="{DynamicResource ScrollBarButtonArrowIconFontSize}">
|
||||
<Path
|
||||
Width="20"
|
||||
Height="20"
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Center"
|
||||
Data="M 19.091797 14.970703 L 10 5.888672 L 0.908203 14.970703 L 0.029297 14.091797 L 10 4.111328 L 19.970703 14.091797 Z"
|
||||
Fill="{DynamicResource ScrollBarButtonArrowForeground}" />
|
||||
</Viewbox>
|
||||
<PathIcon
|
||||
Width="8"
|
||||
Height="8"
|
||||
Data="{DynamicResource MenuScrollViewerUpButtonGlyph}"
|
||||
Foreground="{DynamicResource MenuFlyoutScrollViewerIconForeground}" />
|
||||
</RepeatButton>
|
||||
<RepeatButton
|
||||
HorizontalAlignment="Stretch"
|
||||
@ -42,6 +44,7 @@
|
||||
Background="Transparent"
|
||||
BorderThickness="0"
|
||||
Command="{Binding LineDown, RelativeSource={RelativeSource TemplatedParent}}"
|
||||
CornerRadius="0"
|
||||
DockPanel.Dock="Bottom"
|
||||
RenderTransform="{x:Null}">
|
||||
<RepeatButton.IsVisible>
|
||||
@ -52,15 +55,11 @@
|
||||
<Binding Path="Viewport.Height" RelativeSource="{RelativeSource TemplatedParent}" />
|
||||
</MultiBinding>
|
||||
</RepeatButton.IsVisible>
|
||||
<Viewbox Width="{DynamicResource ScrollBarButtonArrowIconFontSize}" Height="{DynamicResource ScrollBarButtonArrowIconFontSize}">
|
||||
<Path
|
||||
Width="20"
|
||||
Height="20"
|
||||
HorizontalAlignment="Center"
|
||||
VerticalAlignment="Center"
|
||||
Data="M 18.935547 4.560547 L 19.814453 5.439453 L 10 15.253906 L 0.185547 5.439453 L 1.064453 4.560547 L 10 13.496094 Z"
|
||||
Fill="{DynamicResource ScrollBarButtonArrowForeground}" />
|
||||
</Viewbox>
|
||||
<PathIcon
|
||||
Width="8"
|
||||
Height="8"
|
||||
Data="{DynamicResource MenuScrollViewerDownButtonGlyph}"
|
||||
Foreground="{DynamicResource MenuFlyoutScrollViewerIconForeground}" />
|
||||
</RepeatButton>
|
||||
<ScrollContentPresenter
|
||||
Name="PART_ContentPresenter"
|
||||
@ -81,11 +80,32 @@
|
||||
</DockPanel>
|
||||
</ControlTemplate>
|
||||
</Setter>
|
||||
<Style Selector="^ /template/ RepeatButton:pointerover > Viewbox > Path">
|
||||
<Setter Property="Fill" Value="{DynamicResource ScrollBarButtonArrowForegroundPointerOver}" />
|
||||
<Style Selector="^ /template/ RepeatButton:pointerover > PathIcon">
|
||||
<Setter Property="Foreground" Value="{DynamicResource ScrollBarButtonArrowForegroundPointerOver}" />
|
||||
</Style>
|
||||
</ControlTheme>
|
||||
|
||||
<ControlTheme x:Key="{x:Type Separator}" TargetType="Separator">
|
||||
<Setter Property="Separator.Background" Value="{DynamicResource MenuItemSeparatorBackground}" />
|
||||
<Setter Property="Separator.Focusable" Value="False" />
|
||||
<Setter Property="Separator.Height" Value="{DynamicResource MenuItemSeparatorHeight}" />
|
||||
<Setter Property="Separator.HorizontalAlignment" Value="Stretch" />
|
||||
<Setter Property="Separator.Margin" Value="{DynamicResource MenuItemSeparatorMargin}" />
|
||||
<Setter Property="Separator.Template">
|
||||
<ControlTemplate TargetType="Separator">
|
||||
<Border
|
||||
Height="{TemplateBinding Height}"
|
||||
Padding="{TemplateBinding Margin}"
|
||||
HorizontalAlignment="{TemplateBinding HorizontalAlignment}"
|
||||
VerticalAlignment="{TemplateBinding VerticalAlignment}"
|
||||
Background="{TemplateBinding Background}"
|
||||
BorderBrush="{TemplateBinding BorderBrush}"
|
||||
BorderThickness="{TemplateBinding BorderThickness}"
|
||||
CornerRadius="{TemplateBinding CornerRadius}" />
|
||||
</ControlTemplate>
|
||||
</Setter>
|
||||
</ControlTheme>
|
||||
|
||||
<ControlTheme x:Key="{x:Type MenuItem}" TargetType="MenuItem">
|
||||
<Setter Property="Background" Value="{DynamicResource MenuFlyoutItemBackground}" />
|
||||
<Setter Property="Foreground" Value="{DynamicResource MenuFlyoutItemForeground}" />
|
||||
@ -160,14 +180,18 @@
|
||||
PlacementMode="Right"
|
||||
WindowManagerAddShadowHint="False">
|
||||
<Border
|
||||
MinHeight="{DynamicResource MenuFlyoutThemeMinHeight}"
|
||||
MaxWidth="{DynamicResource FlyoutThemeMaxWidth}"
|
||||
Padding="{DynamicResource MenuFlyoutPresenterThemePadding}"
|
||||
MinWidth="{DynamicResource MenuFlyoutMinWidth}"
|
||||
MinHeight="{DynamicResource MenuFlyoutMinHeight}"
|
||||
MaxWidth="{DynamicResource MenuFlyoutMaxWidth}"
|
||||
MaxHeight="{DynamicResource MenuFlyoutMaxHeight}"
|
||||
Margin="0,4"
|
||||
Padding="{DynamicResource MenuFlyoutPadding}"
|
||||
HorizontalAlignment="Stretch"
|
||||
Background="{DynamicResource MenuFlyoutPresenterBackground}"
|
||||
BorderBrush="{DynamicResource MenuFlyoutPresenterBorderBrush}"
|
||||
BorderThickness="{DynamicResource MenuFlyoutPresenterBorderThemeThickness}"
|
||||
CornerRadius="{DynamicResource OverlayCornerRadius}">
|
||||
Background="{DynamicResource MenuFlyoutBackground}"
|
||||
BorderBrush="{DynamicResource MenuFlyoutBorderBrush}"
|
||||
BorderThickness="{DynamicResource MenuFlyoutBorderThickness}"
|
||||
BoxShadow="{DynamicResource MenuFlyoutBorderBoxShadow}"
|
||||
CornerRadius="{DynamicResource MenuFlyoutCornerRadius}">
|
||||
<ScrollViewer Theme="{StaticResource MenuScrollViewer}">
|
||||
<ItemsPresenter
|
||||
Name="PART_ItemsPresenter"
|
||||
@ -249,11 +273,10 @@
|
||||
</ControlTheme>
|
||||
|
||||
<ControlTheme x:Key="TopLevelMenuItem" TargetType="MenuItem">
|
||||
<Setter Property="Background" Value="{DynamicResource MenuFlyoutItemBackground}" />
|
||||
<Setter Property="Foreground" Value="{DynamicResource MenuFlyoutItemForeground}" />
|
||||
<Setter Property="Background" Value="{DynamicResource MenuItemBackground}" />
|
||||
<Setter Property="Foreground" Value="{DynamicResource MenuItemForeground}" />
|
||||
<!-- Narrow padding should be used for mouse input, when non-narrow one should be used for touch input in future. -->
|
||||
<Setter Property="FontSize" Value="{DynamicResource ControlContentThemeFontSize}" />
|
||||
<Setter Property="Padding" Value="{DynamicResource MenuBarItemPadding}" />
|
||||
<Setter Property="Padding" Value="{DynamicResource MenuItemTopLevelPadding}" />
|
||||
<Setter Property="Template">
|
||||
<ControlTemplate>
|
||||
<Border
|
||||
@ -279,15 +302,18 @@
|
||||
OverlayInputPassThroughElement="{Binding $parent[Menu]}"
|
||||
WindowManagerAddShadowHint="False">
|
||||
<Border
|
||||
MinHeight="{DynamicResource MenuFlyoutThemeMinHeight}"
|
||||
MaxWidth="{DynamicResource FlyoutThemeMaxWidth}"
|
||||
Padding="{DynamicResource MenuFlyoutPresenterThemePadding}"
|
||||
MinWidth="{DynamicResource MenuFlyoutMinWidth}"
|
||||
MinHeight="{DynamicResource MenuFlyoutMinHeight}"
|
||||
MaxWidth="{DynamicResource MenuFlyoutMaxWidth}"
|
||||
MaxHeight="{DynamicResource MenuFlyoutMaxHeight}"
|
||||
Margin="0,4"
|
||||
HorizontalAlignment="Stretch"
|
||||
Background="{DynamicResource MenuFlyoutPresenterBackground}"
|
||||
BorderBrush="{DynamicResource MenuFlyoutPresenterBorderBrush}"
|
||||
BorderThickness="{DynamicResource MenuFlyoutPresenterBorderThemeThickness}"
|
||||
CornerRadius="{DynamicResource OverlayCornerRadius}">
|
||||
<ScrollViewer Theme="{StaticResource MenuScrollViewer}">
|
||||
Background="{DynamicResource MenuFlyoutBackground}"
|
||||
BorderBrush="{DynamicResource MenuFlyoutBorderBrush}"
|
||||
BorderThickness="{DynamicResource MenuFlyoutBorderThickness}"
|
||||
BoxShadow="{DynamicResource MenuFlyoutBorderBoxShadow}"
|
||||
CornerRadius="{DynamicResource MenuFlyoutCornerRadius}">
|
||||
<ScrollViewer Padding="{DynamicResource MenuFlyoutPadding}" Theme="{StaticResource MenuScrollViewer}">
|
||||
<ItemsPresenter
|
||||
Name="PART_ItemsPresenter"
|
||||
Margin="{DynamicResource MenuFlyoutScrollerMargin}"
|
||||
@ -305,19 +331,13 @@
|
||||
|
||||
<Style Selector="^:selected">
|
||||
<Style Selector="^ /template/ Border#PART_LayoutRoot">
|
||||
<Setter Property="Background" Value="{DynamicResource MenuFlyoutItemBackgroundPointerOver}" />
|
||||
</Style>
|
||||
<Style Selector="^ /template/ ContentPresenter#PART_HeaderPresenter">
|
||||
<Setter Property="Foreground" Value="{DynamicResource MenuFlyoutItemForegroundPointerOver}" />
|
||||
<Setter Property="Background" Value="{DynamicResource MenuItemPointeroverBackground}" />
|
||||
</Style>
|
||||
</Style>
|
||||
|
||||
<!-- Listen for PART_LayoutRoot:pointerover, so it will not be triggered when subitem is pressed -->
|
||||
<Style Selector="^:pressed /template/ Border#PART_LayoutRoot:pointerover">
|
||||
<Setter Property="Background" Value="{DynamicResource MenuFlyoutItemBackgroundPressed}" />
|
||||
<Style Selector="^ ContentPresenter#PART_HeaderPresenter">
|
||||
<Setter Property="Foreground" Value="{DynamicResource MenuFlyoutItemForegroundPressed}" />
|
||||
</Style>
|
||||
<Setter Property="Background" Value="{DynamicResource MenuItemPressedBackground}" />
|
||||
</Style>
|
||||
|
||||
<Style Selector="^:disabled">
|
||||
@ -332,7 +352,6 @@
|
||||
|
||||
<ControlTheme x:Key="{x:Type Menu}" TargetType="Menu">
|
||||
<Setter Property="Background" Value="Transparent" />
|
||||
<Setter Property="Height" Value="60" />
|
||||
<Setter Property="Menu.ItemContainerTheme" Value="{StaticResource TopLevelMenuItem}" />
|
||||
<Setter Property="Template">
|
||||
<ControlTemplate TargetType="Menu">
|
||||
|
@ -1,16 +1,15 @@
|
||||
<ResourceDictionary xmlns="https://github.com/avaloniaui" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||
<!-- Add Resources Here -->
|
||||
<ControlTheme x:Key="{x:Type MenuFlyoutPresenter}" TargetType="MenuFlyoutPresenter">
|
||||
<Setter Property="Background" Value="{DynamicResource MenuFlyoutPresenterBackground}" />
|
||||
<Setter Property="BorderBrush" Value="{DynamicResource MenuFlyoutPresenterBorderBrush}" />
|
||||
<Setter Property="BorderThickness" Value="{DynamicResource MenuFlyoutPresenterBorderThemeThickness}" />
|
||||
<Setter Property="Padding" Value="{DynamicResource MenuFlyoutPresenterThemePadding}" />
|
||||
<Setter Property="MaxWidth" Value="{DynamicResource FlyoutThemeMaxWidth}" />
|
||||
<Setter Property="MinHeight" Value="{DynamicResource MenuFlyoutThemeMinHeight}" />
|
||||
<Setter Property="MenuFlyoutPresenter.Background" Value="{DynamicResource MenuFlyoutBackground}" />
|
||||
<Setter Property="MenuFlyoutPresenter.BorderBrush" Value="{DynamicResource MenuFlyoutBorderBrush}" />
|
||||
<Setter Property="MenuFlyoutPresenter.BorderThickness" Value="{DynamicResource MenuFlyoutBorderThickness}" />
|
||||
<Setter Property="MenuFlyoutPresenter.Padding" Value="{DynamicResource MenuFlyoutPadding}" />
|
||||
<Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Auto" />
|
||||
<Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Auto" />
|
||||
<Setter Property="CornerRadius" Value="{DynamicResource OverlayCornerRadius}" />
|
||||
<Setter Property="Template">
|
||||
<Setter Property="MenuFlyoutPresenter.Margin" Value="4" />
|
||||
<Setter Property="MenuFlyoutPresenter.CornerRadius" Value="{DynamicResource OverlayCornerRadius}" />
|
||||
<Setter Property="MenuFlyoutPresenter.Template">
|
||||
<ControlTemplate TargetType="MenuFlyoutPresenter">
|
||||
<Border
|
||||
Name="LayoutRoot"
|
||||
@ -18,6 +17,7 @@
|
||||
Background="{TemplateBinding Background}"
|
||||
BorderBrush="{TemplateBinding BorderBrush}"
|
||||
BorderThickness="{TemplateBinding BorderThickness}"
|
||||
BoxShadow="{DynamicResource MenuFlyoutBorderBoxShadow}"
|
||||
CornerRadius="{TemplateBinding CornerRadius}">
|
||||
<ScrollViewer
|
||||
HorizontalScrollBarVisibility="{TemplateBinding ScrollViewer.HorizontalScrollBarVisibility}"
|
||||
|
@ -1,3 +1,33 @@
|
||||
<ResourceDictionary xmlns="https://github.com/avaloniaui" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||
<ResourceDictionary
|
||||
xmlns="https://github.com/avaloniaui"
|
||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||
xmlns:sys="clr-namespace:System;assembly=System.Runtime">
|
||||
<!-- Add Resources Here -->
|
||||
|
||||
<PathGeometry x:Key="MenuScrollViewerUpButtonGlyph">M19.637 16.4369C19.0513 17.0227 18.1015 17.0227 17.5157 16.4369L11.8589 10.7801L6.20202 16.4369C5.61623 17.0227 4.66648 17.0227 4.0807 16.4369C3.49491 15.8511 3.49491 14.9014 4.0807 14.3156L10.7982 7.59809C11.384 7.01231 12.3337 7.01231 12.9195 7.59809L19.637 14.3156C20.2228 14.9014 20.2228 15.8511 19.637 16.4369Z</PathGeometry>
|
||||
<PathGeometry x:Key="MenuScrollViewerDownButtonGlyph">M4.08045 7.59809C4.66624 7.01231 5.61599 7.01231 6.20177 7.59809L11.8586 13.2549L17.5155 7.59809C18.1013 7.01231 19.051 7.01231 19.6368 7.59809C20.2226 8.18388 20.2226 9.13363 19.6368 9.71941L12.9193 16.4369C12.3335 17.0227 11.3838 17.0227 10.798 16.4369L4.08045 9.71941C3.49467 9.13363 3.49467 8.18388 4.08045 7.59809Z</PathGeometry>
|
||||
<SolidColorBrush x:Key="MenuFlyoutScrollViewerIconForeground" Opacity="0.62" Color="#1C1F23" />
|
||||
|
||||
<!-- MenuFlyout -->
|
||||
<SolidColorBrush x:Key="MenuFlyoutBackground" Color="White" />
|
||||
<SolidColorBrush x:Key="MenuFlyoutBorderBrush" Opacity="0.08" Color="#1C1F23" />
|
||||
<Thickness x:Key="MenuFlyoutBorderThickness">1</Thickness>
|
||||
<Thickness x:Key="MenuFlyoutPadding">8</Thickness>
|
||||
<BoxShadows x:Key="MenuFlyoutBorderBoxShadow">0 0 8 0 #1A000000</BoxShadows>
|
||||
<CornerRadius x:Key="MenuFlyoutCornerRadius">3</CornerRadius>
|
||||
<sys:Double x:Key="MenuFlyoutMinHeight">16</sys:Double>
|
||||
<sys:Double x:Key="MenuFlyoutMinWidth">100</sys:Double>
|
||||
<sys:Double x:Key="MenuFlyoutMaxHeight">400</sys:Double>
|
||||
<sys:Double x:Key="MenuFlyoutMaxWidth">600</sys:Double>
|
||||
|
||||
<!-- MenuItem -->
|
||||
<SolidColorBrush x:Key="MenuItemBackground" Color="Transparent" />
|
||||
<SolidColorBrush x:Key="MenuItemForeground" Color="#1C1F23" />
|
||||
<Thickness x:Key="MenuItemTopLevelPadding">8 4</Thickness>
|
||||
|
||||
<SolidColorBrush x:Key="MenuItemSeparatorBackground" Opacity="0.08" Color="#1C1F23" />
|
||||
<sys:Double x:Key="MenuItemSeparatorHeight">1</sys:Double>
|
||||
<Thickness x:Key="MenuItemSeparatorMargin">2</Thickness>
|
||||
<SolidColorBrush x:Key="MenuItemPointeroverBackground" Opacity="0.05" Color="#2E3238" />
|
||||
<SolidColorBrush x:Key="MenuItemPressedBackground" Opacity="0.09" Color="#2E3238" />
|
||||
</ResourceDictionary>
|
||||
|
Loading…
x
Reference in New Issue
Block a user