[英]Bind data to TextBox inside DataGridTextColumn.Header
[英]Width of element in DataGridTextColumn.Header
请帮助如何将 DataGridTextColumn.Header 中的文本框的宽度拉伸到整个长度。
<DataGridTextColumn x:Name="BColumn" Width="*">
<DataGridTextColumn.Header>
<StackPanel Orientation="Vertical" HorizontalAlignment="Center" MinWidth="20">
<TextBlock Text="B" VerticalAlignment="Top" FontStyle="Normal" HorizontalAlignment="Center"/>
<TextBox HorizontalAlignment="Stretch"
VerticalAlignment="Bottom"/>
</StackPanel>
</DataGridTextColumn.Header>
</DataGridTextColumn>
应用程序链接 window: https://ibb.co/KjRhCPG
您需要在DataGridColumnHeader
上将 Horizo HorizontalContentAlignment
属性设置为Stretch
。 以下是你如何通过一种风格来做到这一点:
<Style TargetType="DataGridColumnHeader">
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
</Style>
您需要在DataGrid.Resources
中添加此样式。
然后,您需要为您的Header
内容使用Grid
而不是StackPanel
,因为Grid
占用了整个可用空间而StackPanel
没有
这是完整的 XAML:
<DataGrid>
<DataGrid.Resources>
<Style TargetType="DataGridColumnHeader">
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
</Style>
</DataGrid.Resources>
<DataGrid.Columns>
<DataGridTextColumn x:Name="BColumn" Width="*">
<DataGridTextColumn.Header>
<Grid MinWidth="20">
<Grid.RowDefinitions>
<RowDefinition />
<RowDefinition />
</Grid.RowDefinitions>
<TextBlock Text="B" VerticalAlignment="Top" FontStyle="Normal" HorizontalAlignment="Center"/>
<TextBox HorizontalAlignment="Stretch"
VerticalAlignment="Bottom" Grid.Row="1"/>
</Grid>
</DataGridTextColumn.Header>
</DataGridTextColumn>
</DataGrid.Columns>
</DataGrid>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.