我正在考虑在我的数据网格列标题的右侧添加一个过滤器按钮。我已成功添加按钮并实现了我需要的所有功能,但似乎无法使按钮在标题中右对齐。
这是我当前的 XAML:
<DataGridTextColumn Width="2*" IsReadOnly="True" Binding="{Binding Load}" x:Name="temp">
<DataGridTextColumn.Header>
<Grid Margin="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="16"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="Load" />
<Button Grid.Column="1" x:Name="btnFilter" Content="+" Margin="3,0,0,0" Click="btnFilter_Click"></Button>
</Grid>
</DataGridTextColumn.Header>
</DataGridTextColumn>
这是它当前的样子以及我希望按钮放置的位置。
我认为使用网格可以解决问题,但当我选择网格并查看设计器时,它的宽度不是列的整个宽度,只是文本 block 和按钮的宽度。
为了使按钮在标题中右对齐,我缺少什么?
最佳答案
使用列的 HeaderStyle 将 DataGridColumnHeader 的 HorizontalContentAlignment 属性设置为 Stretch:
<DataGridTextColumn ...>
<DataGridTextColumn.HeaderStyle>
<Style TargetType="{x:Type DataGridColumnHeader}">
<Setter Property="HorizontalContentAlignment" Value="Stretch" />
</Style>
</DataGridTextColumn.HeaderStyle>
<DataGridTextColumn.Header>
<Grid Margin="0">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="*"/>
<ColumnDefinition Width="16"/>
</Grid.ColumnDefinitions>
<TextBlock Grid.Column="0" Text="Load" />
<Button Grid.Column="1" x:Name="btnFilter" Content="+" Margin="3,0,0,0" HorizontalAlignment="Right"></Button>
</Grid>
</DataGridTextColumn.Header>
</DataGridTextColumn>
关于c# - DataGrid 列标题中的 WPF 右对齐按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41589307/