Horizo​​ntalAlignment 不适用于 DataGridTextColumn 中的 ComboBox

HorizontalAlignment not working on ComboBox in DataGridTextColumn

我有一个 DataGridTextColumn,它的 header 由一个 TextBlock 和一个 ComboBox 组成。我希望 TextBlock 左对齐,ComboBox 为 right-aligned。当我尝试使用 HorizontalAlignment = "Right"ComboBox 上设置它时,它不起作用!对于 header,我尝试使用 StackPanel 以及包含 TextBlockComboBoxGrid。我做错了什么?

    <DataGrid 
        CanUserSortColumns="True"
        IsReadOnly="True">

        <DataGrid.Columns>
            <DataGridTextColumn Header="Time"/>

            <DataGridTextColumn>

                <DataGridTextColumn.Header>

                    <StackPanel Orientation="Horizontal">
                        <TextBlock Text="Money" VerticalAlignment="Center"/>
                        <ComboBox HorizontalAlignment="Right" VerticalAlignment="Center"
                            Width="100" ItemsSource="{Binding comboBoxItems}" SelectedIndex="0">
                        </ComboBox>
                    </StackPanel>
                </DataGridTextColumn.Header>

            </DataGridTextColumn>

        </DataGrid.Columns>
    </DataGrid>

尝试使用网格:

                <DataGridTextColumn.Header>

                    <Grid>
                        <Grid.ColumnDefinitions>
                            <ColumnDefinition Width="Auto"/>
                            <ColumnDefinition Width="*"/>
                        </Grid.ColumnDefinitions>
                        <TextBlock Grid.Column="0" Text="Money" VerticalAlignment="Center"/>
                        <ComboBox Grid.Column="1" HorizontalAlignment="Right" VerticalAlignment="Center"
                            ItemsSource="{Binding comboBoxItems}" SelectedIndex="0">
                        </ComboBox>
                    </Grid>

                </DataGridTextColumn.Header>

编辑 1: 如果拖动列以增加列宽,我希望 ComboBox 被拉伸。否则,如果在右侧拖动该列,则至少 ComboBox 应向右对齐。

编辑 2: 这里重要的是,当我拖动列以增加其宽度时,ComboBox 应该落在右侧。

尝试 DockPanel 而不是 StackPanel

<DockPanel LastChildFill="True">
        <TextBlock Text="Money" VerticalAlignment="Center" DockPanel.Dock="Left"/>
        <ComboBox  VerticalAlignment="Center" SelectedIndex="0"/>
</DockPanel>

使用这个

<DataGridTextColumn Width="120">
    <DataGridTextColumn.HeaderTemplate>
        <DataTemplate>
            <Grid Width="{Binding Path=ActualWidth, RelativeSource={RelativeSource AncestorType={x:Type DataGridColumnHeader}}}">
                <TextBlock Text="LLLLL" HorizontalAlignment="Left" Margin="5"/>
                <TextBlock Text="RRRRR" HorizontalAlignment="Right" Margin="5"/>
            </Grid>
        </DataTemplate>
    </DataGridTextColumn.HeaderTemplate>
</DataGridTextColumn>