wpf Canvas 动态增加右键菜单
效果
在WPF中为Canvas动态添加右键菜单(ContextMenu)可以通过以下方式实现:
1.基本实现方法
Canvas控件本身支持ContextMenu属性,可以通过代码动态创建菜单项。例如:
private void Canvas_MouseRightButtonDown(object sender, MouseButtonEventArgs e)
{
ContextMenu menu = new ContextMenu();
// 根据点击位置判断
if(IsOverExistingElement(e.GetPosition(myCanvas)))
{
menu.Items.Add(new MenuItem(){ Header="删除", Command=DeleteCommand });
menu.Items.Add(new MenuItem(){ Header="编辑", Command=EditCommand });
}
else
{
menu.Items.Add(new MenuItem(){ Header="添加图形", Command=AddShapeCommand });
}
myCanvas.ContextMenu = m