2017-01-11 90 views
1

我正在尋找添加一個過濾器按鈕到我的datagrid列標題的右側。我成功地添加了按鈕,並實現了我需要的所有功能,但我似乎無法使按鈕在標題中正確對齊。在DataGrid列標題中的WPF右對齊按鈕

這是我目前的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> 

這是它目前的外觀和我想要的按鈕來進行定位。

example

我想用電網會做的伎倆,但是當我選擇網格並期待在設計它的寬度不列僅在寬度上的文字塊和按鈕的整個寬度。

我錯過了什麼,爲了讓按鈕右對齊的頭?

回答

4

使用設置DataGridColumnHeader的Horizo​​ntalContentAlignment屬性欄的HeaderStyle爲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> 
+0

是寫了同樣的答案;) – WPFUser

+0

@ MM8完美的,我怎麼會不明白這一點越快。我發現我已經創建了一個資源,但使用了Horizo​​ntalAlignment = stretch,我很傻 –