feat: update context menu and context flyout menu. add demos.
This commit is contained in:
parent
0f42087314
commit
dfcc8bc9bb
@ -73,5 +73,56 @@
|
||||
<MenuItem Header="Child 19" />
|
||||
</MenuItem>
|
||||
</Menu>
|
||||
<Border>
|
||||
<Border.ContextMenu>
|
||||
<ContextMenu>
|
||||
<MenuItem Header="Standard _Menu Item" InputGesture="Ctrl+A" />
|
||||
<MenuItem
|
||||
Header="_Disabled Menu Item"
|
||||
InputGesture="Ctrl+D"
|
||||
IsEnabled="False" />
|
||||
<Separator />
|
||||
<MenuItem Header="Menu with _Submenu">
|
||||
<MenuItem Header="Submenu _1" />
|
||||
<MenuItem Header="Submenu _2" />
|
||||
</MenuItem>
|
||||
<MenuItem Header="Menu Item with _Checkbox">
|
||||
<MenuItem.Icon>
|
||||
<CheckBox
|
||||
BorderThickness="0"
|
||||
IsChecked="True"
|
||||
IsHitTestVisible="False" />
|
||||
</MenuItem.Icon>
|
||||
</MenuItem>
|
||||
<MenuItem Header="Menu Item that won't close on click" StaysOpenOnClick="True" />
|
||||
</ContextMenu>
|
||||
</Border.ContextMenu>
|
||||
<TextBlock Text="Context Menu" />
|
||||
</Border>
|
||||
<Border>
|
||||
<Border.ContextFlyout>
|
||||
<MenuFlyout>
|
||||
<MenuItem Header="Standard _Menu Item" InputGesture="Ctrl+A" />
|
||||
<MenuItem
|
||||
Header="_Disabled Menu Item"
|
||||
InputGesture="Ctrl+D"
|
||||
IsEnabled="False" />
|
||||
<Separator />
|
||||
<MenuItem Header="Menu with _Submenu">
|
||||
<MenuItem Header="Submenu _1" />
|
||||
<MenuItem Header="Submenu _2" />
|
||||
</MenuItem>
|
||||
<MenuItem Header="Menu Item with _Checkbox">
|
||||
<MenuItem.Icon>
|
||||
<CheckBox
|
||||
BorderThickness="0"
|
||||
IsChecked="True"
|
||||
IsHitTestVisible="False" />
|
||||
</MenuItem.Icon>
|
||||
</MenuItem>
|
||||
</MenuFlyout>
|
||||
</Border.ContextFlyout>
|
||||
<TextBlock Text="Context Flyout" />
|
||||
</Border>
|
||||
</StackPanel>
|
||||
</UserControl>
|
||||
|
39
src/Semi.Avalonia/Controls/ContextMenu.axaml
Normal file
39
src/Semi.Avalonia/Controls/ContextMenu.axaml
Normal file
@ -0,0 +1,39 @@
|
||||
<ResourceDictionary xmlns="https://github.com/avaloniaui" xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
|
||||
<ControlTheme x:Key="{x:Type ContextMenu}" TargetType="ContextMenu">
|
||||
<Setter Property="ContextMenu.Background" Value="{DynamicResource MenuFlyoutBackground}" />
|
||||
<Setter Property="ContextMenu.BorderBrush" Value="{DynamicResource MenuFlyoutBorderBrush}" />
|
||||
<Setter Property="ContextMenu.BorderThickness" Value="{DynamicResource MenuFlyoutBorderThickness}" />
|
||||
<Setter Property="ContextMenu.CornerRadius" Value="{DynamicResource MenuFlyoutCornerRadius}" />
|
||||
<Setter Property="ContextMenu.MaxWidth" Value="{DynamicResource MenuFlyoutMaxWidth}" />
|
||||
<Setter Property="ContextMenu.MinHeight" Value="{DynamicResource MenuFlyoutMinHeight}" />
|
||||
<Setter Property="ContextMenu.Padding" Value="{DynamicResource MenuFlyoutPadding}" />
|
||||
<Setter Property="ContextMenu.HorizontalAlignment" Value="Stretch" />
|
||||
<Setter Property="TextBlock.FontWeight" Value="Normal" />
|
||||
<Setter Property="ContextMenu.WindowManagerAddShadowHint" Value="False" />
|
||||
<Setter Property="ContextMenu.Template">
|
||||
<ControlTemplate TargetType="ContextMenu">
|
||||
<Border
|
||||
MinHeight="{TemplateBinding MinHeight}"
|
||||
MaxWidth="{TemplateBinding MaxWidth}"
|
||||
Margin="0,4"
|
||||
Padding="{TemplateBinding Padding}"
|
||||
HorizontalAlignment="{TemplateBinding HorizontalAlignment}"
|
||||
Background="{TemplateBinding Background}"
|
||||
BorderBrush="{TemplateBinding BorderBrush}"
|
||||
BorderThickness="{TemplateBinding BorderThickness}"
|
||||
BoxShadow="{DynamicResource MenuFlyoutBorderBoxShadow}"
|
||||
CornerRadius="{TemplateBinding CornerRadius}">
|
||||
<ScrollViewer Theme="{StaticResource MenuScrollViewer}">
|
||||
<ItemsPresenter
|
||||
Name="PART_ItemsPresenter"
|
||||
Grid.IsSharedSizeScope="True"
|
||||
ItemTemplate="{TemplateBinding ItemTemplate}"
|
||||
Items="{TemplateBinding Items}"
|
||||
ItemsPanel="{TemplateBinding ItemsPanel}"
|
||||
KeyboardNavigation.TabNavigation="Continue" />
|
||||
</ScrollViewer>
|
||||
</Border>
|
||||
</ControlTemplate>
|
||||
</Setter>
|
||||
</ControlTheme>
|
||||
</ResourceDictionary>
|
@ -8,6 +8,7 @@
|
||||
<ResourceInclude Source="avares://Semi.Avalonia/Controls/CheckBox.axaml" />
|
||||
<ResourceInclude Source="avares://Semi.Avalonia/Controls/ComboBox.axaml" />
|
||||
<ResourceInclude Source="avares://Semi.Avalonia/Controls/ContentControl.axaml" />
|
||||
<ResourceInclude Source="avares://Semi.Avalonia/Controls/ContextMenu.axaml" />
|
||||
<ResourceInclude Source="avares://Semi.Avalonia/Controls/Expander.axaml" />
|
||||
<ResourceInclude Source="avares://Semi.Avalonia/Controls/FlyoutPresenter.axaml" />
|
||||
<ResourceInclude Source="avares://Semi.Avalonia/Controls/ItemsControl.axaml" />
|
||||
|
@ -194,7 +194,6 @@
|
||||
<ScrollViewer Theme="{StaticResource MenuScrollViewer}">
|
||||
<ItemsPresenter
|
||||
Name="PART_ItemsPresenter"
|
||||
Margin="{DynamicResource MenuFlyoutScrollerMargin}"
|
||||
Grid.IsSharedSizeScope="True"
|
||||
ItemTemplate="{TemplateBinding ItemTemplate}"
|
||||
Items="{TemplateBinding Items}"
|
||||
@ -295,7 +294,6 @@
|
||||
<ScrollViewer Padding="{DynamicResource MenuFlyoutPadding}" Theme="{StaticResource MenuScrollViewer}">
|
||||
<ItemsPresenter
|
||||
Name="PART_ItemsPresenter"
|
||||
Margin="{DynamicResource MenuFlyoutScrollerMargin}"
|
||||
Grid.IsSharedSizeScope="True"
|
||||
ItemTemplate="{TemplateBinding ItemTemplate}"
|
||||
Items="{TemplateBinding Items}"
|
||||
|
@ -13,12 +13,18 @@
|
||||
<ControlTemplate TargetType="MenuFlyoutPresenter">
|
||||
<Border
|
||||
Name="LayoutRoot"
|
||||
Padding="{DynamicResource FlyoutBorderThemePadding}"
|
||||
Background="{TemplateBinding Background}"
|
||||
BorderBrush="{TemplateBinding BorderBrush}"
|
||||
BorderThickness="{TemplateBinding BorderThickness}"
|
||||
MinWidth="{DynamicResource MenuFlyoutMinWidth}"
|
||||
MinHeight="{DynamicResource MenuFlyoutMinHeight}"
|
||||
MaxWidth="{DynamicResource MenuFlyoutMaxWidth}"
|
||||
MaxHeight="{DynamicResource MenuFlyoutMaxHeight}"
|
||||
Margin="0,4"
|
||||
Padding="{DynamicResource MenuFlyoutPadding}"
|
||||
HorizontalAlignment="Stretch"
|
||||
Background="{DynamicResource MenuFlyoutBackground}"
|
||||
BorderBrush="{DynamicResource MenuFlyoutBorderBrush}"
|
||||
BorderThickness="{DynamicResource MenuFlyoutBorderThickness}"
|
||||
BoxShadow="{DynamicResource MenuFlyoutBorderBoxShadow}"
|
||||
CornerRadius="{TemplateBinding CornerRadius}">
|
||||
CornerRadius="{DynamicResource MenuFlyoutCornerRadius}">
|
||||
<ScrollViewer
|
||||
HorizontalScrollBarVisibility="{TemplateBinding ScrollViewer.HorizontalScrollBarVisibility}"
|
||||
Theme="{StaticResource MenuScrollViewer}"
|
||||
|
Loading…
x
Reference in New Issue
Block a user