0

我有一个顶部菜单栏,里面有几个下拉菜单。

当前,当您打开菜单时,其子菜单会在左侧对齐打开。有没有办法可以将对齐向右移动。我已经阅读了一些东西,我可以将系统属性从左手更改为右手等,但我只是希望这个案例纯粹适用于这个特定的菜单。

例子:

由此

在此处输入图像描述

对此

在此处输入图像描述

4

1 回答 1

1

这是一种实现您想要的方法。假设有一个菜单,如:

<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;
}
于 2018-06-29T05:43:35.433 回答