Back to Devexpress

DXPopupMenu.MenuViewType Property

windowsforms-devexpress-dot-utils-dot-menu-dot-dxpopupmenu.md

latest18.1 KB
Original Source

DXPopupMenu.MenuViewType Property

Gets or sets how the current menu is displayed (as a menu, floating bar or RibbonMiniToolbar).

Namespace : DevExpress.Utils.Menu

Assembly : DevExpress.Utils.v25.2.dll

NuGet Packages : DevExpress.Utils, DevExpress.Wpf.Core

Declaration

csharp
[DefaultValue(MenuViewType.Menu)]
public MenuViewType MenuViewType { get; set; }
vb
<DefaultValue(MenuViewType.Menu)>
Public Property MenuViewType As MenuViewType

Property Value

TypeDefaultDescription
MenuViewTypeMenu

A MenuViewType value

|

Available values:

NameDescription
Menu

A menu is displayed as a regular popup menu.

| | Toolbar |

A menu is displayed as a popup bar.

| | RibbonMiniToolbar |

A menu is displayed as a RibbonMiniToolbar.

|

Remarks

A DXPopupMenu can be displayed as a regular menu, popup bar or RibbonMiniToolbar.

This can be accomplished by changing the menu’s display mode via the MenuViewType property and using a corresponding menu manager (this manager is responsible for displaying a DXPopupMenu in a specific manner). Note that only changing the display mode via the MenuViewType property is not enough. You also need to use a corresponding menu manager that is passed to the DXPopupMenu’s IDXDropDownControl.Show method.

The following menu managers are available:

  • SkinMenuManager - This manager displays a DXPopupMenu as a regular menu.

  • BarManager - This manager displays a DXPopupMenu as a popup bar.

  • RibbonControl - This manager displays a DXPopupMenu as a RibbonMiniToolbar.

Example 1

csharp
// Display a DXPopupMenu as a regular menu
UserLookAndFeel lf = UserLookAndFeel.Default;
Control parentControl = this;
Point pt;
DXPopupMenu dxPopupMenu = new DXPopupMenu();
//...
dxPopupMenu.MenuViewType = MenuViewType.Menu;
dxPopupMenu.ShowPopup(parentControl, pt);
//or
((IDXDropDownControl)dxPopupMenu).Show(new SkinMenuManager(lf), parentControl, pt);

Example 2

csharp
// Display a DXPopupMenu as a popup bar
Control parentControl = this;
Point pt;
DXPopupMenu dxPopupMenu = new DXPopupMenu();
//...
dxPopupMenu.MenuViewType = MenuViewType.Toolbar;
dxPopupMenu.ShowPopup(parentControl, pt);
//or
((IDXDropDownControl)dxPopupMenu).Show(barManager1, parentControl, pt);

Example 3

csharp
// Display a DXPopupMenu as a RibbonMiniToolbar
Control parentControl = this;
Point pt;
DXPopupMenu dxPopupMenu = new DXPopupMenu();
//...
dxPopupMenu.MenuViewType = MenuViewType.RibbonMiniToolbar;
dxPopupMenu.ShowPopup(parentControl, pt);
//or
((IDXDropDownControl)dxPopupMenu).Show(RibbonControl1, parentControl, pt);

Example

This example shows how to display DXPopupMenu as a regular menu, popup bar or RibbonMiniToolbar. To change a menu's display mode, the MenuViewType property is used.To display DXPopupMenu as a popup bar, you need to set the MenuViewType property to Toolbar and also pass a BarManager object to the DXPopupMenu.Show method. Similarly, to display DXPopupMenu as RibbonMiniToolbar, you need to set the MenuViewType property to Toolbar and also pass a RibbonControl object to the DXPopupMenu.Show method.

csharp
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevExpress.Utils.Menu;
using DevExpress.XtraEditors.Repository;

namespace DXPopupMenu_DisplayMode {
    public partial class Form1 : Form {
        public Form1() {
            InitializeComponent();

            InitPopupMenu();
        }

        protected virtual void InitPopupMenu() {
            RepositoryItemComboBox riEditComboBox = new RepositoryItemComboBox();
            riEditComboBox.Items.Add("item1");
            riEditComboBox.Items.Add("item2");
            riEditComboBox.Items.Add("item3");
            riEditComboBox.Items.Add("item4");
            riEditComboBox.Items.Add("item5");

            RepositoryItemDateEdit riDateEdit = new RepositoryItemDateEdit();

            menu = new DXPopupMenu();
            menu.Items.Add(new DXMenuItem("Cut", new EventHandler(OnItemClick), DXPopupMenu_DisplayMode.Properties.Resources.Cut_16x16, null, DXPopupMenu_DisplayMode.Properties.Resources.Cut_32x32, null));
            menu.Items.Add(new DXMenuItem("Copy", new EventHandler(OnItemClick), DXPopupMenu_DisplayMode.Properties.Resources.Copy_16x16, null, DXPopupMenu_DisplayMode.Properties.Resources.Copy_32x32, null));
            menu.Items.Add(new DXMenuItem("Paste", new EventHandler(OnItemClick), DXPopupMenu_DisplayMode.Properties.Resources.Paste_16x16, null, DXPopupMenu_DisplayMode.Properties.Resources.Paste_32x32, null));
            menu.Items.Add(new DXEditMenuItem("ComboBox", riEditComboBox, null, null, null, 100, -1));
            menu.Items.Add(new DXEditMenuItem("DateEdit", riDateEdit, null, null, null, 100, -1));
            DXButtonGroupItem group1 = new DXButtonGroupItem();
            group1.Caption = "Button Group 1";
            group1.Items.Add(new DXMenuItem("Open", new EventHandler(OnItemClick), DXPopupMenu_DisplayMode.Properties.Resources.Open_16x16, null, DXPopupMenu_DisplayMode.Properties.Resources.Open_32x32, null));
            group1.Items.Add(new DXMenuItem("Save", new EventHandler(OnItemClick), DXPopupMenu_DisplayMode.Properties.Resources.Save_16x16, null, DXPopupMenu_DisplayMode.Properties.Resources.Save_32x32, null));
            group1.Items.Add(new DXMenuItem("Save All", new EventHandler(OnItemClick), DXPopupMenu_DisplayMode.Properties.Resources.SaveAll_16x16, null, DXPopupMenu_DisplayMode.Properties.Resources.SaveAll_32x32, null));
            DXButtonGroupItem group2 = new DXButtonGroupItem();
            group2.Caption = "Button Group 2";
            group2.Items.Add(new DXMenuItem("Edit", new EventHandler(OnItemClick), DXPopupMenu_DisplayMode.Properties.Resources.Edit_16x16, null, DXPopupMenu_DisplayMode.Properties.Resources.Edit_32x32, null));
            group2.Items.Add(new DXMenuItem("Delete", new EventHandler(OnItemClick), DXPopupMenu_DisplayMode.Properties.Resources.Delete_16x16, null, DXPopupMenu_DisplayMode.Properties.Resources.Delete_32x32, null));
            group2.Items.Add(new DXMenuItem("Print", new EventHandler(OnItemClick), DXPopupMenu_DisplayMode.Properties.Resources.Print_16x16, null, DXPopupMenu_DisplayMode.Properties.Resources.Print_32x32, null));
            DXButtonGroupItem group3 = new DXButtonGroupItem();
            group3.Caption = "Button Group 3";
            group3.Items.Add(new DXMenuItem("Close", new EventHandler(OnItemClick), DXPopupMenu_DisplayMode.Properties.Resources.Close_16x16, null, DXPopupMenu_DisplayMode.Properties.Resources.Close_32x32, null));
            group3.Items.Add(new DXMenuItem("Delete", new EventHandler(OnItemClick), DXPopupMenu_DisplayMode.Properties.Resources.Delete_16x16, null, DXPopupMenu_DisplayMode.Properties.Resources.Delete_32x32, null));
            menu.Items.Add(group1);
            menu.Items.Add(group2);
            menu.Items.Add(group3);
        }
        void OnItemClick(object sender, EventArgs e) { }

        DXPopupMenu menu;
        private void btnDisplayAsRegularMenu_Click(object sender, EventArgs e) {
            SimpleForm form = new SimpleForm();
            form.PopupMenu = menu;
            form.Show();
        }
        private void btnDisplayAsPopupBar_Click(object sender, EventArgs e) {
            BarsForm form = new BarsForm();
            form.PopupMenu = menu;
            form.Show();
        }
        private void btnDisplayAsRibbonMiniToolbar_Click(object sender, EventArgs e) {
            RibbonForm1 form = new RibbonForm1();
            form.PopupMenu = menu;
            form.Show();
        }
    }
}
csharp
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevExpress.Utils.Menu;
using DevExpress.LookAndFeel.Design;

namespace DXPopupMenu_DisplayMode {
    public partial class SimpleForm : Form {
        public SimpleForm() {
            InitializeComponent();
        }

        public DXPopupMenu PopupMenu;

        protected override void OnMouseUp(MouseEventArgs e) {
            if(e.Button == MouseButtons.Right) {
                ((IDXDropDownControl)PopupMenu).Show(new SkinMenuManager(UserLookAndFeelDefault.Default), this, e.Location);
            }
        }
    }
}
csharp
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraBars.Ribbon;
using DevExpress.Utils.Menu;

namespace DXPopupMenu_DisplayMode {
    public partial class RibbonForm1 : RibbonForm {
        public RibbonForm1() {
            InitializeComponent();
        }

        public DXPopupMenu PopupMenu;

        protected override void OnMouseUp(MouseEventArgs e) {
            if(e.Button == MouseButtons.Right) {
                PopupMenu.MenuViewType = MenuViewType.RibbonMiniToolbar;
                ((IDXDropDownControl)PopupMenu).Show(ribbonControl1, this, e.Location);
            }
        }
    }
}
csharp
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevExpress.Utils.Menu;

namespace DXPopupMenu_DisplayMode {
    public partial class BarsForm : Form {
        public BarsForm() {
            InitializeComponent();
        }

        public DXPopupMenu PopupMenu;

        protected override void OnMouseUp(MouseEventArgs e) {
            if(e.Button == MouseButtons.Right) {
                PopupMenu.MenuViewType = MenuViewType.Toolbar;
                ((IDXDropDownControl)PopupMenu).Show(barManager1, this, e.Location);
            }
        }
    }
}
vb
Imports Microsoft.VisualBasic
Imports System
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Data
Imports System.Drawing
Imports System.Text
Imports System.Windows.Forms
Imports DevExpress.Utils.Menu
Imports DevExpress.LookAndFeel.Design

Namespace DXPopupMenu_DisplayMode
    Partial Public Class SimpleForm
        Inherits Form
        Public Sub New()
            InitializeComponent()
        End Sub

        Public PopupMenu As DXPopupMenu

        Protected Overrides Sub OnMouseUp(ByVal e As MouseEventArgs)
            If e.Button = MouseButtons.Right Then
                CType(PopupMenu, IDXDropDownControl).Show(New SkinMenuManager(UserLookAndFeelDefault.Default), Me, e.Location)
            End If
        End Sub
    End Class
End Namespace
vb
Imports Microsoft.VisualBasic
Imports System
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Data
Imports System.Drawing
Imports System.Text
Imports System.Windows.Forms
Imports DevExpress.Utils.Menu
Imports DevExpress.XtraEditors.Repository

Namespace DXPopupMenu_DisplayMode
    Partial Public Class Form1
        Inherits Form
        Public Sub New()
            InitializeComponent()

            InitPopupMenu()
        End Sub

        Protected Overridable Sub InitPopupMenu()
            Dim riEditComboBox As New RepositoryItemComboBox()
            riEditComboBox.Items.Add("item1")
            riEditComboBox.Items.Add("item2")
            riEditComboBox.Items.Add("item3")
            riEditComboBox.Items.Add("item4")
            riEditComboBox.Items.Add("item5")

            Dim riDateEdit As New RepositoryItemDateEdit()

            menu = New DXPopupMenu()
            menu.Items.Add(New DXMenuItem("Cut", New EventHandler(AddressOf OnItemClick), My.Resources.Cut_16x16, Nothing, My.Resources.Cut_32x32, Nothing))
            menu.Items.Add(New DXMenuItem("Copy", New EventHandler(AddressOf OnItemClick), My.Resources.Copy_16x16, Nothing, My.Resources.Copy_32x32, Nothing))
            menu.Items.Add(New DXMenuItem("Paste", New EventHandler(AddressOf OnItemClick), My.Resources.Paste_16x16, Nothing, My.Resources.Paste_32x32, Nothing))
            menu.Items.Add(New DXEditMenuItem("ComboBox", riEditComboBox, Nothing, Nothing, Nothing, 100, -1))
            menu.Items.Add(New DXEditMenuItem("DateEdit", riDateEdit, Nothing, Nothing, Nothing, 100, -1))
            Dim group1 As New DXButtonGroupItem()
            group1.Caption = "Button Group 1"
            group1.Items.Add(New DXMenuItem("Open", New EventHandler(AddressOf OnItemClick), My.Resources.Open_16x16, Nothing, My.Resources.Open_32x32, Nothing))
            group1.Items.Add(New DXMenuItem("Save", New EventHandler(AddressOf OnItemClick), My.Resources.Save_16x16, Nothing, My.Resources.Save_32x32, Nothing))
            group1.Items.Add(New DXMenuItem("Save All", New EventHandler(AddressOf OnItemClick), My.Resources.SaveAll_16x16, Nothing, My.Resources.SaveAll_32x32, Nothing))
            Dim group2 As New DXButtonGroupItem()
            group2.Caption = "Button Group 2"
            group2.Items.Add(New DXMenuItem("Edit", New EventHandler(AddressOf OnItemClick), My.Resources.Edit_16x16, Nothing, My.Resources.Edit_32x32, Nothing))
            group2.Items.Add(New DXMenuItem("Delete", New EventHandler(AddressOf OnItemClick), My.Resources.Delete_16x16, Nothing, My.Resources.Delete_32x32, Nothing))
            group2.Items.Add(New DXMenuItem("Print", New EventHandler(AddressOf OnItemClick), My.Resources.Print_16x16, Nothing, My.Resources.Print_32x32, Nothing))
            Dim group3 As New DXButtonGroupItem()
            group3.Caption = "Button Group 3"
            group3.Items.Add(New DXMenuItem("Close", New EventHandler(AddressOf OnItemClick), My.Resources.Close_16x16, Nothing, My.Resources.Close_32x32, Nothing))
            group3.Items.Add(New DXMenuItem("Delete", New EventHandler(AddressOf OnItemClick), My.Resources.Delete_16x16, Nothing, My.Resources.Delete_32x32, Nothing))
            menu.Items.Add(group1)
            menu.Items.Add(group2)
            menu.Items.Add(group3)
        End Sub
        Private Sub OnItemClick(ByVal sender As Object, ByVal e As EventArgs)
        End Sub

        Private menu As DXPopupMenu
        Private Sub btnDisplayAsRegularMenu_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnDisplayAsRegularMenu.Click
            Dim form As New SimpleForm()
            form.PopupMenu = menu
            form.Show()
        End Sub
        Private Sub btnDisplayAsPopupBar_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnDisplayAsPopupBar.Click
            Dim form As New BarsForm()
            form.PopupMenu = menu
            form.Show()
        End Sub
        Private Sub btnDisplayAsRibbonMiniToolbar_Click(ByVal sender As Object, ByVal e As EventArgs) Handles btnDisplayAsRibbonMiniToolbar.Click
            Dim form As New RibbonForm1()
            form.PopupMenu = menu
            form.Show()
        End Sub
    End Class
End Namespace
vb
Imports Microsoft.VisualBasic
Imports System
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Data
Imports System.Drawing
Imports System.Text
Imports System.Windows.Forms
Imports DevExpress.Utils.Menu

Namespace DXPopupMenu_DisplayMode
    Partial Public Class BarsForm
        Inherits Form
        Public Sub New()
            InitializeComponent()
        End Sub

        Public PopupMenu As DXPopupMenu

        Protected Overrides Sub OnMouseUp(ByVal e As MouseEventArgs)
            If e.Button = MouseButtons.Right Then
                PopupMenu.MenuViewType = MenuViewType.Toolbar
                CType(PopupMenu, IDXDropDownControl).Show(barManager1, Me, e.Location)
            End If
        End Sub
    End Class
End Namespace
vb
Imports Microsoft.VisualBasic
Imports System
Imports System.Collections.Generic
Imports System.ComponentModel
Imports System.Data
Imports System.Drawing
Imports System.Text
Imports System.Windows.Forms
Imports DevExpress.XtraBars.Ribbon
Imports DevExpress.Utils.Menu

Namespace DXPopupMenu_DisplayMode
    Partial Public Class RibbonForm1
        Inherits RibbonForm
        Public Sub New()
            InitializeComponent()
        End Sub

        Public PopupMenu As DXPopupMenu

        Protected Overrides Sub OnMouseUp(ByVal e As MouseEventArgs)
            If e.Button = MouseButtons.Right Then
                PopupMenu.MenuViewType = MenuViewType.RibbonMiniToolbar
                CType(PopupMenu, IDXDropDownControl).Show(ribbonControl1, Me, e.Location)
            End If
        End Sub
    End Class
End Namespace

See Also

DXPopupMenu Class

DXPopupMenu Members

DevExpress.Utils.Menu Namespace