[英]context menu for Selected item on a DiagramSurface in WPF
我有一个UI,它是一个diagramSurface对象。 在运行该应用程序时,我将一个元素(一种标签)拖放到其顶部。 我想为此对象实现一个CONTEXTMENU。
我做完了
<DiagramSurface>
<DiagramSurface.ContextMenu>
<ContextMenu >
<MenuItem Header="Save" Click="MenuItem_Click"/>
</ContextMenu>
<DiagramSurface.ContextMenu>
</DiagramSurface>
这样,如果我单击不存在对象的表面,就可以看到contextMenu。 如何避免这种情况? 我只想在元素的右键单击上显示上下文菜单。
作为@Viv说(虽然我不知道他为什么不说出来的答案),该ContextMenu
会出现,当你右键点击你将它添加到控制的任何地方 。 因此,如果将其添加到DiagramSurface
,则在该控件上的任意位置单击时将显示它。 若要解决您的问题,请从DiagramSurface
控件中删除声明。
现在,您需要将其添加到拖放的控件中。 您可以按照@Viv的说明进行操作,并在Resources
部分中定义ContextMenu
:
<Application.Resources>
<ContextMenu x:Key="ContextMenu">
<MenuItem Header="Save" Click="MenuItem_Click"/>
</ContextMenu>
</Application.Resources>
然后将其设置为代码中拖放元素的ContextMenu
:
ContextMenu menu = (ContextMenu)Application.Current.FindResource("ContextMenu");
element.ContextMenu = contextMenu;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.