我有一个与Canvas相关联的ContextMenu
<UserControl>
<Grid myGrid>
<Canvas myCanvas>
<ContextMenu myMenu />...
我点击了一个menuItem条目,并希望在这个地方插入一个控件(label,myLabel)。
我应该如何设置myLabel的坐标,以便它对应鼠标右键(ContextMenu实际&#34;位置&#34;)?..
答案 0 :(得分:1)
您可以使用ContextMenu的TranslatePoint方法,例如在MenuItem的Click事件处理程序中,如下所示:
Point location = myMenu.TranslatePoint(new Point(), myCanvas);
其中myMenu是ContextMenu:
<UserControl>
<Grid ...>
<Canvas ...>
<ContextMenu Name=myMenu />...
以下是如何从MenuItem的Click事件的发件人获取ContextMenu:
FrameworkElement parent = sender as FrameworkElement;
while (parent != null && !(parent is ContextMenu))
{
parent = parent.Parent as FrameworkElement;
}