簡體   English   中英

Horizo​​ntalAlignment在DataGridTextColumn中的ComboBox上不起作用

[英]HorizontalAlignment not working on ComboBox in DataGridTextColumn

我有一個DataGridTextColumn其標題由TextBlockComboBox 我希望TextBlock保持左對齊,而ComboBox保持右對齊。 當我嘗試使用HorizontalAlignment = "Right"ComboBox進行設置時,它不起作用! 對於標題,我嘗試使用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應該位於右側。

用這個

<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>

嘗試使用DockPanel而不是StackPanel

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM