WPF菜单项右对齐
我有以下菜单。我正在尝试右对齐菜单的内容WPF菜单项右对齐,wpf,Wpf,我有以下菜单。我正在尝试右对齐菜单的内容 <Menu Grid.ColumnSpan="3"> <MenuItem Header="Items"> <MenuItem> <MenuItem.Header> <Grid> <Grid.ColumnDefinitions>
<Menu Grid.ColumnSpan="3">
<MenuItem Header="Items">
<MenuItem>
<MenuItem.Header>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<TextBlock Text="Item 1" Grid.Column="0" HorizontalAlignment="Stretch" />
<Button Grid.Column="1" Content="E" />
<Button Grid.Column="2" Content="D" />
</Grid>
</MenuItem.Header>
</MenuItem>
<MenuItem>
<MenuItem.Header>
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*" />
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="Auto" />
</Grid.ColumnDefinitions>
<TextBlock Text="Item 2" Grid.Column="0" HorizontalAlignment="Stretch" />
<Button Grid.Column="1" Content="E" />
<Button Grid.Column="2" Content="D" />
</Grid>
</MenuItem.Header>
</MenuItem>
</MenuItem>
</Menu>
E之后还有很多空间
我期待的是:
------------------
Item 1 D E |
------------------
Item 2 D E |
------------------
我希望D和E向右对齐,因为项目1和项目2向左对齐
我尝试使用HorizontalAlignment,但没有找到答案。为此,可以使用DockPanel而不是Grid。还可以尝试显式设置菜单项的宽度。像这样:
<MenuItem>
<MenuItem.Header>
<DockPanel LastChildFill="False" Width="250">
<TextBlock Text="Item 1" DockPanel.Dock="Left" HorizontalAlignment="Stretch" />
<Button DockPanel.Dock="Right" Content="E" />
<Button DockPanel.Dock="Right" Content="D" />
</DockPanel>
</MenuItem.Header>
</MenuItem>
我更像是一个dockpanel类型的人。你试试看怎么样:
<MenuItem>
<MenuItem.Header>
<DockPanel LastChildFill="True">
<Button DockPanel.Dock="Right" Content="E" />
<Button DockPanel.Dock="Right" Content="D" />
<TextBlock DockPanel.Dock="Left" Text="Item 1" />
</DockPanel>
</MenuItem.Header>
</MenuItem>
设置宽度是个问题。(项目名称是动态的)如果未设置宽度,则不会设置work@stackovrflo也许可以尝试将宽度更改为最小宽度。。。或者根本没有宽度。
<MenuItem>
<MenuItem.Header>
<DockPanel LastChildFill="True">
<Button DockPanel.Dock="Right" Content="E" />
<Button DockPanel.Dock="Right" Content="D" />
<TextBlock DockPanel.Dock="Left" Text="Item 1" />
</DockPanel>
</MenuItem.Header>
</MenuItem>