我有以下菜单。我试图正确对齐菜单的内容。
<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>
显示的内容如下:
------------------
Item 1 D E |
------------------
Item 2 D E |
------------------
E之后还有很多空间。
我期待的是:
------------------
Item 1 D E |
------------------
Item 2 D E |
------------------
我希望D和E与右边对齐,因为项目1和项目2在左边对齐。
我尝试使用HorizontalAlignment无助于找到答案。
答案 0 :(得分:0)
您可以使用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>
答案 1 :(得分:0)
我更像是一个码头类型的家伙。你怎么试试:
<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>