contextMenu가 화면 가장자리에 너무 가깝게 배치되어 배치를 자동으로 조정할 때를 어떻게 알 수 있습니까?WPF ContextMenu 배치 조정 이벤트
제 시나리오는 2 개의 둥근 모서리와 2 개의 사각형 모서리가있는 contextMenu입니다. 메뉴가 열릴 때 아래쪽 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);
}
여기에 그래서 당신이 내 둥근 모서리를 조정하기 위해 알 필요 내 문제를 볼 수있는 것처럼 실제 응용 프로그램이 어떻게 표시되는지를 보여줍니다.
감사합니다. 그것은 분명히 해결책을 찾는 데 도움이되었습니다. –