Files
docs-desktop/dotnet-desktop-guide/framework/wpf/controls/how-to-use-a-custom-context-menu-with-a-textbox.md
T
Andy (Steve) De George be103da07e Replace various WPF include files with content (#1335)
* net-current-v30plus-md.md

* net-current-v40plus-md.md

* tla2sharptla-ui-md.md

* tla2sharptla-uiautomation-md.md

* tla2sharptla-winclient-md.md

* tla2sharptla-xaml-md.md

* tlasharptla-ui-md.md

* tlasharptla-uiautomation-md.md

* tlasharptla-winclient-md.md

* tlasharptla-xaml-md.md

* fix warnings
2022-03-16 12:14:11 -04:00

2.9 KiB

title, description, ms.date, ms.custom, dev_langs, helpviewer_keywords, ms.assetid
title description ms.date ms.custom dev_langs helpviewer_keywords ms.assetid
How to: Use a Custom Context Menu with a TextBox Learn how to use a Custom Context Menu with a TextBox. 03/30/2017 devdivchpfy22
csharp
vb
context menus [WPF], custom
menus [WPF], custom
custom context menus [WPF]
TextBox control [WPF], custom content menus
842d3cd5-6fa0-4be4-8d90-6c7466213b1c

How to: Use a Custom Context Menu with a TextBox

This example shows how to define and implement a simple custom context menu for a xref:System.Windows.Controls.TextBox.

Define a Custom Context Menu

The following Extensible Application Markup Language (XAML) example defines a xref:System.Windows.Controls.TextBox control that includes a custom context menu.

The context menu is defined using a xref:System.Windows.Controls.ContextMenu element. The context menu itself consists of a series of xref:System.Windows.Controls.MenuItem elements and xref:System.Windows.Controls.Separator elements. Each xref:System.Windows.Controls.MenuItem element defines a command in the context menu; the xref:System.Windows.Controls.HeaderedItemsControl.Header%2A attribute defines the display text for the menu command, and the xref:System.Windows.Controls.MenuItem.Click attribute specifies a handler method for each menu item. The xref:System.Windows.Controls.Separator element simply causes a separating line to be rendered between the previous and subsequent menu items.

[!code-xamlTextBox_ContextMenu#_TextBox_ContextMenuXAML]

Implement a Custom Context Menu

The following example shows the implementation code for the preceding context menu definition, as well as the code that enables and disables the context menu. The xref:System.Windows.Controls.ContextMenu.Opened event is used to dynamically enable or disable certain commands depending on the current state of the xref:System.Windows.Controls.TextBox.

To restore the default context menu, use the xref:System.Windows.DependencyObject.ClearValue%2A method to clear the value of the xref:System.Windows.FrameworkElement.ContextMenu%2A property. To disable the context menu altogether, set the xref:System.Windows.FrameworkElement.ContextMenu%2A property to a null reference (Nothing in Visual Basic).

[!code-csharpTextBox_ContextMenu#_TextBox_ContextMenu] [!code-vbTextBox_ContextMenu#_TextBox_ContextMenu]

See also