public ref class ContextMenu : System::Windows::Controls::Primitives::MenuBase
public class ContextMenu : System.Windows.Controls.Primitives.MenuBase
type ContextMenu = class
inherit MenuBase
Public Class ContextMenu
Inherits MenuBase
ContextMenu
以下示例创建一个
ContextMenu
操作文本
TextBox
的 。 该示例演示如何订阅和处理
MenuItem
对象
ContextMenu
的事件。
<TextBox Name="textBox1"
TextWrapping="Wrap"
Margin="10, 10, 5, 5" Grid.Row="7">
The quick brown fox jumps over the lazy dog.
<TextBox.ContextMenu>
<ContextMenu>
<MenuItem Header="_Bold"
IsCheckable="True"
Checked="Bold_Checked"
Unchecked="Bold_Unchecked" />
<MenuItem Header="_Italic"
IsCheckable="True"
Checked="Italic_Checked"
Unchecked="Italic_Unchecked" />
<Separator />
<MenuItem Header="I_ncrease Font Size"
Click="IncreaseFont_Click" />
<MenuItem Header="_Decrease Font Size"
Click="DecreaseFont_Click" />
</ContextMenu>
</TextBox.ContextMenu>
</TextBox>
private void Bold_Checked(object sender, RoutedEventArgs e)
textBox1.FontWeight = FontWeights.Bold;
private void Bold_Unchecked(object sender, RoutedEventArgs e)
textBox1.FontWeight = FontWeights.Normal;
private void Italic_Checked(object sender, RoutedEventArgs e)
textBox1.FontStyle = FontStyles.Italic;
private void Italic_Unchecked(object sender, RoutedEventArgs e)
textBox1.FontStyle = FontStyles.Normal;
private void IncreaseFont_Click(object sender, RoutedEventArgs e)
if (textBox1.FontSize < 18)
textBox1.FontSize += 2;
private void DecreaseFont_Click(object sender, RoutedEventArgs e)
if (textBox1.FontSize > 10)
textBox1.FontSize -= 2;
Private Sub Bold_Checked(ByVal sender As Object, ByVal e As RoutedEventArgs)
textBox1.FontWeight = FontWeights.Bold
End Sub
Private Sub Bold_Unchecked(ByVal sender As Object, ByVal e As RoutedEventArgs)
textBox1.FontWeight = FontWeights.Normal
End Sub
Private Sub Italic_Checked(ByVal sender As Object, ByVal e As RoutedEventArgs)
textBox1.FontStyle = FontStyles.Italic
End Sub
Private Sub Italic_Unchecked(ByVal sender As Object, ByVal e As RoutedEventArgs)
textBox1.FontStyle = FontStyles.Normal
End Sub
Private Sub IncreaseFont_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
If textBox1.FontSize < 18 Then
textBox1.FontSize += 2
End If
End Sub
Private Sub DecreaseFont_Click(ByVal sender As Object, ByVal e As RoutedEventArgs)
If textBox1.FontSize > 10 Then
textBox1.FontSize -= 2
End If
End Sub
ContextMenu
是一个
ItemsControl
,这意味着它可以包含任何类型 (的对象集合,例如字符串、图像或面板) 。 有关更多信息,请参见
ItemsControl
类。
类的属性
ContextMenu
用于定义该
ContextMenu
类的位置和行为。
或者
FrameworkElement
可以有一个
ContextMenu
。
FrameworkContentElement
如果向 or
FrameworkContentElement.ContextMenu
属性分配了上下文
ContextMenu
FrameworkElement.ContextMenu
菜单操作,则
ContextMenuService
类将处理上下文菜单操作,以响应用户交互。 操作
ContextMenuService
的一部分是在用户单击控件上的鼠标右键时打开
ContextMenu
。
以下属性由
ContextMenu
类
ContextMenuService
定义。 如果同时设置
ContextMenu
上述任何属性和
ContextMenuService
属性,则使用来自该属性的
ContextMenuService
属性值。
Placement
PlacementRectangle
PlacementTargetProperty
HorizontalOffset
VerticalOffsetProperty
HasDropShadow
自动将 A
ContextMenu
放置在控件内
Popup
。 无法更改此行为。
若要将相同的属性设置应用于多个
ContextMenu
控件,请使用该
Style
属性。 可以修改默认值
ControlTemplate
,使控件具有唯一的外观。 有关创建控件
ControlTemplate
的详细信息,请参阅
通过创建 ControlTemplate 自定义现有控件的外观
。 若要查看特定于其中的
ContextMenu
部件和状态,请参阅
ContextMenu 样式和模板
。
此控件的依赖项属性可能由控件的默认样式设置。 如果属性由默认样式设置,则当控件出现在应用程序中时,该属性可能会从其默认值更改。 默认样式由应用程序运行时使用桌面主题确定。
只有视觉对象属性已存在于控件的默认模板中并且已使用
TemplateBinding
设置时,设置该属性才有效。 在
通过创建 ControlTemplate 自定义现有控件的外观
一文的
更改控件的视觉结构
部分可以找到视觉属性列表。
为指定的路由事件添加路由事件处理程序,并将该处理程序添加到当前元素的处理程序集合中。 将
handledEventsToo
指定为
true
,可为已标记为由事件路由中的其他元素处理的路由事件调用所提供的处理程序。
(继承自
UIElement
)
定位子元素,并确定
UIElement
的大小。 父元素从它们的
ArrangeCore(Rect)
实现(或者是 WPF 框架级别等效项)调用此方法,以便形成递归布局更新。 此方法产生第二次布局更新。
(继承自
UIElement
)
对指定依赖属性的值进行强制。 通过对调用方
DependencyObject
上存在的依赖属性的属性元数据中所指定的任何
CoerceValueCallback
函数进行调用来完成此操作。
(继承自
DependencyObject
)
更新
UIElement
的
DesiredSize
。 父元素从其自身的
MeasureCore(Size)
实现调用此方法以形成递归布局更新。 调用此方法构成布局更新的第一个处理过程(“测量”处理过程)。
(继承自
UIElement
)
每当更新此
FrameworkElement
的任何依赖属性的有效值时调用。 将在自变量参数中报告已更改的特定依赖属性。 重写
OnPropertyChanged(DependencyPropertyChangedEventArgs)
。
(继承自
FrameworkElement
)
支持
FrameworkElement
的专用子类中的增量布局实现。 如果子元素包含无效属性,且该属性在元数据中标记为影响布局过程中父元素的测量或排列过程的因素,则调用
ParentLayoutInvalidated(UIElement)
。
(继承自
FrameworkElement
)