ContextMenuPage.xaml 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687
  1. <UserControl x:Class="ControlCatalog.Pages.ContextMenuPage"
  2. xmlns="https://github.com/avaloniaui"
  3. xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
  4. <StackPanel Orientation="Vertical" Spacing="4">
  5. <TextBlock Classes="h2">A right click menu that can be applied to any control.</TextBlock>
  6. <UniformGrid HorizontalAlignment="Center" Rows="2">
  7. <UniformGrid.Styles>
  8. <Style Selector="UniformGrid > Border">
  9. <Setter Property="Padding" Value="48,20" />
  10. <Setter Property="Margin" Value="8" />
  11. <Setter Property="Focusable" Value="True" />
  12. <Setter Property="Background" Value="{DynamicResource SystemAccentColor}" />
  13. </Style>
  14. <Style Selector="UniformGrid > Border > :is(Control)">
  15. <Setter Property="VerticalAlignment" Value="Center" />
  16. </Style>
  17. </UniformGrid.Styles>
  18. <Border>
  19. <Border.ContextMenu>
  20. <ContextMenu>
  21. <MenuItem Header="Standard _Menu Item" InputGesture="Ctrl+A" />
  22. <MenuItem Header="_Disabled Menu Item"
  23. InputGesture="Ctrl+D"
  24. IsEnabled="False" />
  25. <Separator />
  26. <MenuItem Header="Menu with _Submenu">
  27. <MenuItem Header="Submenu _1" />
  28. <MenuItem Header="Submenu _2" />
  29. </MenuItem>
  30. <MenuItem Header="Menu Item with _Icon" InputGesture="Ctrl+Shift+B">
  31. <MenuItem.Icon>
  32. <Image Source="/Assets/github_icon.png" />
  33. </MenuItem.Icon>
  34. </MenuItem>
  35. <MenuItem Header="Menu Item with _Checkbox">
  36. <MenuItem.Icon>
  37. <CheckBox BorderThickness="0"
  38. IsChecked="True"
  39. IsHitTestVisible="False" />
  40. </MenuItem.Icon>
  41. </MenuItem>
  42. <MenuItem Header="Menu Item that won't close on click" StaysOpenOnClick="True" />
  43. </ContextMenu>
  44. </Border.ContextMenu>
  45. <TextBlock Text="Defined in XAML" />
  46. </Border>
  47. <Border>
  48. <Border.Styles>
  49. <Style Selector="ContextMenu MenuItem">
  50. <Setter Property="Header" Value="{Binding Header}"/>
  51. <Setter Property="Items" Value="{Binding Items}"/>
  52. <Setter Property="Command" Value="{Binding Command}"/>
  53. <Setter Property="CommandParameter" Value="{Binding CommandParameter}"/>
  54. </Style>
  55. </Border.Styles>
  56. <Border.ContextMenu>
  57. <ContextMenu Items="{Binding MenuItems}" />
  58. </Border.ContextMenu>
  59. <TextBlock Text="Dynamically Generated"/>
  60. </Border>
  61. <Border x:Name="CustomContextRequestedBorder">
  62. <Border.ContextMenu>
  63. <ContextMenu>
  64. <MenuItem Header="Should never be visible" />
  65. </ContextMenu>
  66. </Border.ContextMenu>
  67. <TextBlock Text="Custom ContextRequested handler" TextWrapping="Wrap" />
  68. </Border>
  69. <Border x:Name="CancellableContextBorder">
  70. <Border.ContextMenu>
  71. <ContextMenu>
  72. <MenuItem>
  73. <MenuItem.Header>
  74. <CheckBox x:Name="CancelCloseCheckBox" Content="Cancel close" />
  75. </MenuItem.Header>
  76. </MenuItem>
  77. </ContextMenu>
  78. </Border.ContextMenu>
  79. <StackPanel>
  80. <TextBlock Text="Cancellable" />
  81. <CheckBox x:Name="CancelOpenCheckBox" Content="Cancel open" />
  82. </StackPanel>
  83. </Border>
  84. </UniformGrid>
  85. </StackPanel>
  86. </UserControl>