每当您右键单击浏览器(或任何其他应用程序)的边缘时,上下文菜单将溢出窗口,但不会溢出屏幕。
我希望上下文菜单始终位于窗口边界,所以当我点击底边附近时,它应该显示顶部的菜单。假设窗口的尺寸总是大于上下文菜单。
这可能吗?如果没有,是否有任何解决方法?
P.S。我没有构建应用程序窗口,只是应用程序的查看器。
答案 0 :(得分:-1)
使用ContextMenu的Placement
和PlacementRectangle
属性。
在下面的这个例子中,我将Placement属性设置为“Relative”,将Rectangle设置为x,y坐标25,25。然后,无论我在哪里单击,上下文菜单都会出现在25,25,相对于Button
<Button ContextMenuService.Placement="Relative" ContextMenuService.PlacementRectangle="25, 25, 0, 0">
<Button.ContextMenu>
<ContextMenu>
<MenuItem Header="Do this" />
<MenuItem Header="Do that" />
</ContextMenu>
</Button.ContextMenu>
</Button>
当然,您可以根据菜单的大小及其与边缘的接近程度,对这些属性使用的值进行更动态的计算。