我有一个顶部菜单栏,其中有几个下拉菜单。
当前,当您打开菜单时,其子菜单将在左侧对齐打开。 有没有办法可以将对齐方式向右移。 我已经读了几本书,可以从左到右更改系统属性,但我只希望这种情况仅适用于此特定菜单。
示例:
从此
对此
答案 0 :(得分: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;
}