ContextMenuPage.xaml 3.7 KB

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