mirror of
https://gitcode.com/gh_mirrors/se/Semi.Avalonia
synced 2026-04-21 17:06:34 +08:00
feat: update context menu and context flyout menu. add demos.
This commit is contained in:
@@ -73,5 +73,56 @@
|
|||||||
<MenuItem Header="Child 19" />
|
<MenuItem Header="Child 19" />
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
</Menu>
|
</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>
|
</StackPanel>
|
||||||
</UserControl>
|
</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/CheckBox.axaml" />
|
||||||
<ResourceInclude Source="avares://Semi.Avalonia/Controls/ComboBox.axaml" />
|
<ResourceInclude Source="avares://Semi.Avalonia/Controls/ComboBox.axaml" />
|
||||||
<ResourceInclude Source="avares://Semi.Avalonia/Controls/ContentControl.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/Expander.axaml" />
|
||||||
<ResourceInclude Source="avares://Semi.Avalonia/Controls/FlyoutPresenter.axaml" />
|
<ResourceInclude Source="avares://Semi.Avalonia/Controls/FlyoutPresenter.axaml" />
|
||||||
<ResourceInclude Source="avares://Semi.Avalonia/Controls/ItemsControl.axaml" />
|
<ResourceInclude Source="avares://Semi.Avalonia/Controls/ItemsControl.axaml" />
|
||||||
|
|||||||
@@ -194,7 +194,6 @@
|
|||||||
<ScrollViewer Theme="{StaticResource MenuScrollViewer}">
|
<ScrollViewer Theme="{StaticResource MenuScrollViewer}">
|
||||||
<ItemsPresenter
|
<ItemsPresenter
|
||||||
Name="PART_ItemsPresenter"
|
Name="PART_ItemsPresenter"
|
||||||
Margin="{DynamicResource MenuFlyoutScrollerMargin}"
|
|
||||||
Grid.IsSharedSizeScope="True"
|
Grid.IsSharedSizeScope="True"
|
||||||
ItemTemplate="{TemplateBinding ItemTemplate}"
|
ItemTemplate="{TemplateBinding ItemTemplate}"
|
||||||
Items="{TemplateBinding Items}"
|
Items="{TemplateBinding Items}"
|
||||||
@@ -295,7 +294,6 @@
|
|||||||
<ScrollViewer Padding="{DynamicResource MenuFlyoutPadding}" Theme="{StaticResource MenuScrollViewer}">
|
<ScrollViewer Padding="{DynamicResource MenuFlyoutPadding}" Theme="{StaticResource MenuScrollViewer}">
|
||||||
<ItemsPresenter
|
<ItemsPresenter
|
||||||
Name="PART_ItemsPresenter"
|
Name="PART_ItemsPresenter"
|
||||||
Margin="{DynamicResource MenuFlyoutScrollerMargin}"
|
|
||||||
Grid.IsSharedSizeScope="True"
|
Grid.IsSharedSizeScope="True"
|
||||||
ItemTemplate="{TemplateBinding ItemTemplate}"
|
ItemTemplate="{TemplateBinding ItemTemplate}"
|
||||||
Items="{TemplateBinding Items}"
|
Items="{TemplateBinding Items}"
|
||||||
|
|||||||
@@ -13,12 +13,18 @@
|
|||||||
<ControlTemplate TargetType="MenuFlyoutPresenter">
|
<ControlTemplate TargetType="MenuFlyoutPresenter">
|
||||||
<Border
|
<Border
|
||||||
Name="LayoutRoot"
|
Name="LayoutRoot"
|
||||||
Padding="{DynamicResource FlyoutBorderThemePadding}"
|
MinWidth="{DynamicResource MenuFlyoutMinWidth}"
|
||||||
Background="{TemplateBinding Background}"
|
MinHeight="{DynamicResource MenuFlyoutMinHeight}"
|
||||||
BorderBrush="{TemplateBinding BorderBrush}"
|
MaxWidth="{DynamicResource MenuFlyoutMaxWidth}"
|
||||||
BorderThickness="{TemplateBinding BorderThickness}"
|
MaxHeight="{DynamicResource MenuFlyoutMaxHeight}"
|
||||||
|
Margin="0,4"
|
||||||
|
Padding="{DynamicResource MenuFlyoutPadding}"
|
||||||
|
HorizontalAlignment="Stretch"
|
||||||
|
Background="{DynamicResource MenuFlyoutBackground}"
|
||||||
|
BorderBrush="{DynamicResource MenuFlyoutBorderBrush}"
|
||||||
|
BorderThickness="{DynamicResource MenuFlyoutBorderThickness}"
|
||||||
BoxShadow="{DynamicResource MenuFlyoutBorderBoxShadow}"
|
BoxShadow="{DynamicResource MenuFlyoutBorderBoxShadow}"
|
||||||
CornerRadius="{TemplateBinding CornerRadius}">
|
CornerRadius="{DynamicResource MenuFlyoutCornerRadius}">
|
||||||
<ScrollViewer
|
<ScrollViewer
|
||||||
HorizontalScrollBarVisibility="{TemplateBinding ScrollViewer.HorizontalScrollBarVisibility}"
|
HorizontalScrollBarVisibility="{TemplateBinding ScrollViewer.HorizontalScrollBarVisibility}"
|
||||||
Theme="{StaticResource MenuScrollViewer}"
|
Theme="{StaticResource MenuScrollViewer}"
|
||||||
|
|||||||
Reference in New Issue
Block a user