[英]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.