我寻找以下问题的解决方案: 为了美观,我使用无边框窗口,因此我为该窗口创建了一个标题区域(它是Grid
)。
<Grid x:Name="rootGrid" HorizontalAlignment="Stretch" VerticalAlignment="Stretch" Background="{DynamicResource BackgroundColor}" >
<Grid.ContextMenu>
<ContextMenu>
<MenuItem x:Name="cmiVerschieben" Header="Verschieben" Click="cmiVerschieben_Click"/>
</ContextMenu>
</Grid.ContextMenu>
<!-- ... -->
</Grid>
现在我像大多数应用程序一样在标题栏中添加了一个上下文菜单(关闭、最大化、最小化、移动......)。
简单的命令不是问题,但是对于“移动”条目,我必须将鼠标光标从当前位置移动到标题网格的中心。
我cmiVerschieben_Click
用 rootGrid.Focus();
and尝试过rootGrid.CaptureMouse();
,但两者都没有将光标设置为rootGrid
.
我为什么要这样做?在许多其他应用程序中,当我单击“移动”上下文菜单项时,鼠标会移动到标题窗口的中心。
我在这里从我的代码中删除了不必要的事件处理程序。