【发布时间】:2015-01-15 00:08:27
【问题描述】:
我有一个DataGridTextColumn,其标头由TextBlock 和ComboBox 组成。我希望TextBlock 左对齐,ComboBox 右对齐。当我尝试使用HorizontalAlignment = "Right" 在ComboBox 上设置它时,它不起作用!对于标题,我尝试使用StackPanel 以及Grid 来包含TextBlock 和ComboBox。我做错了什么?
<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 应该落在右侧。
【问题讨论】:
-
您可以使用
Grid发布您的尝试吗?谢谢 -
刚刚添加了网格尝试...
-
这就是你需要的link
-
将 safi 示例中的宽度添加到您的网格中,它将起作用。