* 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
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 |
|
|
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]