有谁知道我如何确定contextMenu何时自动调整位置,因为它靠近屏幕边缘?WPF ContextMenu放置调整事件
我的情景是,我有一个contextMenu有2个圆角和2个方角。当菜单打开时,我绕着底部2 ...如果菜单向上打开,那么我围绕顶部2.问题是,我没有找到绑定的事件或属性,告诉我菜单何时获取其方向自动改变。
这里有一些简单的示例代码来尝试。如果在窗口位于屏幕顶部时单击,则菜单关闭。如果您将窗口移动到屏幕底部,则菜单将会上升。
<Window x:Class="menuRedirection.Window1"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="Window1" Height="100" Width="200">
<DockPanel Name="panel" ContextMenuOpening="DockPanel_ContextMenuOpening">
<DockPanel.ContextMenu>
<ContextMenu>
<MenuItem Header="item"/>
<MenuItem Header="item"/>
<MenuItem Header="item"/>
<MenuItem Header="item"/>
</ContextMenu>
</DockPanel.ContextMenu>
<Rectangle DockPanel.Dock="Bottom" Name="menuTarget" Fill="Red" Height="10"/>
<TextBlock DockPanel.Dock="Top" Text="right click for context menu"/>
</DockPanel>
</Window>
private void DockPanel_ContextMenuOpening(object sender, ContextMenuEventArgs e)
{
ContextMenuService.SetPlacement(panel, PlacementMode.Bottom);
ContextMenuService.SetPlacementTarget(panel, menuTarget);
}
这里是真正的应用程序是什么样的,所以你可以看到我的问题,需要知道调整我的圆角。
感谢您的信息。它绝对有助于找出解决方案。 –