WPF 菜单打开右对齐
WPF menus open right alinged
我有一个顶部菜单栏,其中有几个下拉菜单。
目前,当您打开菜单时,其子菜单会在左侧对齐打开。
有没有办法可以将对齐方式向右移动。
我已经阅读了一些可以将系统属性从左手更改为右手等的内容,但我只希望这种情况纯粹针对此特定菜单。
示例:
由此
对此
这是一种实现您想要的方法。假设有一个像这样的菜单:
<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;
}
我有一个顶部菜单栏,其中有几个下拉菜单。
目前,当您打开菜单时,其子菜单会在左侧对齐打开。 有没有办法可以将对齐方式向右移动。 我已经阅读了一些可以将系统属性从左手更改为右手等的内容,但我只希望这种情况纯粹针对此特定菜单。
示例:
由此
对此
这是一种实现您想要的方法。假设有一个像这样的菜单:
<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;
}