GridPopupMenu Class

A pop-up menu displayed within a View.

Namespace: DevExpress.Xpf.Grid

Assembly: DevExpress.Xpf.Grid.v19.2.dll

Declaration

public class GridPopupMenu :
    DataControlPopupMenu
Public Class GridPopupMenu
    Inherits DataControlPopupMenu

Returned By

The GridViewBase.GridMenu property returns an instance of GridPopupMenu.

Remarks

The GridPopupMenu object represents a context menu displayed within a View.

Examples

The following example demonstrates how to modify a column header in a grid's Table View. This sample adds a button with an icon to a column header's customization area.

Define a DataTemplate and assign it to the DataViewBase.ColumnHeaderCustomizationAreaTemplate property. This template specifies a button and its properties. For example, the context menu is invoked when you click the button, and the context menu is disabled when you right-click the column header or the custom button within it.

<dxg:GridControl.View>
    <dxg:TableView Name="view" ShowGridMenu="TableView_ShowGridMenu">
        <dxg:TableView.ColumnHeaderCustomizationAreaTemplate>
            <DataTemplate>
                <Button Tag="custom" Click="Button_Click" PreviewMouseRightButtonUp="Button_PreviewMouseRightButtonUp" 
                        dxg:GridPopupMenu.GridMenuType="{x:Static dxg:GridMenuType.Column}">
                    <Button.Template>
                        <ControlTemplate TargetType="{x:Type Button}">
                            <Grid SnapsToDevicePixels="True" Background="Transparent">
                                <Path Name="path" Stretch="Fill" Fill="#FF0000FF" 
                                      Data="F1 M 1410.67,764.811L 1408.32,767.495C 1407.59,768.323 1406.36, 768.364 1405.59,767.586L 1405.41,767.414C 1404.64,766.636 1404.68, 765.407 1405.51,764.683L 1408.19,762.334C 1407.67,762.122 1407.1, 762 1406.5,762C 1404.01,762 1402,764.015 1402,766.5C 1402, 767.145 1402.14,767.755 1402.38,768.309L 1397.64,772.525C 1396.82, 773.257 1396.78,774.491 1397.56,775.269L 1397.73,775.44C 1398.51, 776.218 1399.74,776.182 1400.47,775.359L 1404.69,770.616C 1405.25, 770.86 1405.86,771.001 1406.5,771.001C 1408.98,771.001 1411, 768.985 1411,766.5C 1411,765.902 1410.88,765.333 1410.67,764.811 Z " 
                                      Width="14" Height="14" HorizontalAlignment="Center" VerticalAlignment="Center" />
                            </Grid>
                            <ControlTemplate.Triggers>
                                <Trigger Property="IsMouseOver" Value="True">
                                    <Setter Property="Fill" TargetName="path" Value="#FF00FF00" />
                                </Trigger>
                                <Trigger Property="IsPressed" Value="True">
                                    <Setter Property="Fill" TargetName="path" Value="#FFFF0000" />
                                </Trigger>
                            </ControlTemplate.Triggers>
                        </ControlTemplate>
                    </Button.Template>
                </Button>
            </DataTemplate>
        </dxg:TableView.ColumnHeaderCustomizationAreaTemplate>
    </dxg:TableView>
</dxg:GridControl.View>
private void TableView_ShowGridMenu(object sender, GridMenuEventArgs e) {
    // Check whether this event was raised for a column's context menu.
    // If not - exit and leave the menu shown.
    if (e.MenuType != GridMenuType.Column) return;

    // Check whether this event was raised for a custom button.
    // If not - exit and hide the menu.
    if ((e.TargetElement as Control).Tag == null) {
        e.Handled = true;
        return;
    }
}

private void Button_Click(object sender, RoutedEventArgs e) {
    // Show the context menu when a custom button is clicked.
    view.GridMenu.ShowPopup(sender as Button);
}

private void Button_PreviewMouseRightButtonUp(object sender, MouseButtonEventArgs e) {
    // Don't show the context menu when a custom button is right-clicked.
    e.Handled = true;
}

Implements

Inheritance

Object
DispatcherObject
DependencyObject
Visual
UIElement
FrameworkElement
Popup
DevExpress.Xpf.Core.PopupBase
BarPopupBase
DevExpress.Xpf.Bars.BarPopupExpandable
PopupMenuBase
PopupMenu
DevExpress.Xpf.Bars.CustomizablePopupMenuBase
DevExpress.Xpf.Bars.GridPopupMenuBase
DevExpress.Xpf.Grid.DataControlPopupMenu
GridPopupMenu
See Also