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>
Link 申请 window:
https://ibb.co/KjRhCPG
您需要在 DataGridColumnHeader
上将 HorizontalContentAlignment
属性 设置为 Stretch
。以下是您如何通过一种风格来做到这一点:
<Style TargetType="DataGridColumnHeader">
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
</Style>
您需要在 DataGrid.Resources
中添加此样式。
然后你需要为你的 Header
内容使用 Grid
而不是 StackPanel
因为 Grid
占用了整个可用的 space 和 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>
请帮忙如何将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>
Link 申请 window: https://ibb.co/KjRhCPG
您需要在 DataGridColumnHeader
上将 HorizontalContentAlignment
属性 设置为 Stretch
。以下是您如何通过一种风格来做到这一点:
<Style TargetType="DataGridColumnHeader">
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
</Style>
您需要在 DataGrid.Resources
中添加此样式。
然后你需要为你的 Header
内容使用 Grid
而不是 StackPanel
因为 Grid
占用了整个可用的 space 和 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>