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>