[英]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.