Cla*_*son 1 c# wpf xaml datagrid
我正在寻找在datagrid列标题的右侧添加一个过滤器按钮.我已经成功添加了按钮并实现了我需要的所有功能,我似乎无法让按钮在标题中正确对齐.
这是我目前的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>
Run Code Online (Sandbox Code Playgroud)
这就是它当前的样子以及我想要按钮的位置.
我认为使用网格可以做到这一点,但是当我选择网格并查看设计器时,它的宽度不是列的整个宽度,而只是文本块和按钮的宽度.
为了让标题中的按钮右对齐,我错过了什么?
使用列的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>
Run Code Online (Sandbox Code Playgroud)