.net 确定画布中ContextMenu的位置?
我有一个上下文菜单,与画布关联.net 确定画布中ContextMenu的位置?,.net,wpf,wpf-controls,.net,Wpf,Wpf Controls,我有一个上下文菜单,与画布关联 <UserControl> <Grid myGrid> <Canvas myCanvas> <ContextMenu myMenu />... ... 我单击了一个menuItem条目,并希望在此处插入一个控件(label,myLabel) 我应该如何设置myLabel的坐标,以使其对应于鼠标右键单击(ContextMenu的实际“位置”)?…您可以使用ContextMenu的方法,例如
<UserControl>
<Grid myGrid>
<Canvas myCanvas>
<ContextMenu myMenu />...
...
我单击了一个menuItem条目,并希望在此处插入一个控件(label,myLabel)
我应该如何设置myLabel的坐标,以使其对应于鼠标右键单击(ContextMenu的实际“位置”)?…您可以使用ContextMenu的方法,例如在MenuItem的Click事件处理程序中,如下所示:
Point location = myMenu.TranslatePoint(new Point(), myCanvas);
其中myMenu是ContextMenu:
<UserControl>
<Grid ...>
<Canvas ...>
<ContextMenu Name=myMenu />...
单击中的发件人将是菜单项,而不是上下文菜单。。。因此,您不知道如何找到ContextMenu…您可以设置ContextMenu的
Name
属性。是的,但如果在某些情况下在同一画布上显示两个上下文菜单,会怎么样…)
FrameworkElement parent = sender as FrameworkElement;
while (parent != null && !(parent is ContextMenu))
{
parent = parent.Parent as FrameworkElement;
}