我有一个顶部菜单栏,里面有几个下拉菜单。
当前,当您打开菜单时,其子菜单会在左侧对齐打开。有没有办法可以将对齐向右移动。我已经阅读了一些东西,我可以将系统属性从左手更改为右手等,但我只是希望这个案例纯粹适用于这个特定的菜单。
例子:
由此
对此
我有一个顶部菜单栏,里面有几个下拉菜单。
当前,当您打开菜单时,其子菜单会在左侧对齐打开。有没有办法可以将对齐向右移动。我已经阅读了一些东西,我可以将系统属性从左手更改为右手等,但我只是希望这个案例纯粹适用于这个特定的菜单。
例子:
由此
对此
这是一种实现您想要的方法。假设有一个菜单,如:
<Menu>
<MenuItem Header="AAA" SubmenuOpened="MenuItem_SubmenuOpened">
<MenuItem Header="111"/>
</MenuItem>
</Menu>
然后在代码隐藏中,我们可以调整Popup
子菜单,如:
private void MenuItem_SubmenuOpened(object sender, RoutedEventArgs e)
{
MenuItem owner = (MenuItem)sender;
Popup child = (Popup)owner.Template.FindName("PART_Popup", owner);
child.Placement = PlacementMode.Left;
child.HorizontalOffset = owner.ActualWidth;
child.VerticalOffset = owner.ActualHeight;
}