2017-02-11 24 views
0

2つの別個に作成されましたDatagrids; columnheader styleないものとcolumnheader styleDataGrid Columnheaderスタイル - WPF C#

データグリッドと別の1:

<DataGrid x:Name="PrintReport" ItemsSource="{Binding MonthlyResults}" AutoGenerateColumns="False" FontFamily="Tahoma" FontSize="12" IsReadOnly="True" CanUserSortColumns="False" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" AlternatingRowBackground="Gainsboro" AlternationCount="1" SelectionMode="Extended" SelectionUnit="Cell" > 
    <DataGrid.Columns> 
     <DataGridTextColumn Header="Pattern" Binding="{Binding }" > 
     <DataGridTextColumn.ElementStyle> 
      <Style> 
      <Setter Property="TextBlock.TextWrapping" Value="Wrap" /> 
      <Setter Property="TextBlock.TextAlignment" Value="Center"/> 
      </Style> 
     </DataGridTextColumn.ElementStyle> 
     </DataGridTextColumn> 
     <DataGridTextColumn Header="Lease" Binding="{Binding VOD,StringFormat={}{0:0.00}}" > 
     <DataGridTextColumn.ElementStyle> 
      <Style> 
      <Setter Property="TextBlock.TextWrapping" Value="Wrap" /> 
      <Setter Property="TextBlock.TextAlignment" Value="Center"/> 
      </Style> 
     </DataGridTextColumn.ElementStyle> 
    </DataGridTextColumn> 
    </DataGrid.Columns> 
</DataGrid> 

データグリッド2:

<DataGrid x:Name="PrintReport2" ItemsSource="{Binding MonthlyResults}" AutoGenerateColumns="False" FontFamily="Tahoma" FontSize="13" IsReadOnly="True" CanUserSortColumns="False" HorizontalContentAlignment="Stretch" VerticalContentAlignment="Stretch" AlternatingRowBackground="Gainsboro" AlternationCount="1" SelectionMode="Extended" SelectionUnit="Cell"> 

<DataGrid.Columns> 
<DataGridTextColumn Header="Req - OAR" Binding="{Binding }" > 
<DataGridTextColumn.ElementStyle> 


    <Style> 
    <Setter Property="TextBlock.TextWrapping" Value="Wrap" /> 
    <Setter Property="TextBlock.TextAlignment" Value="Center"/> 
     </Style> 
</DataGridTextColumn.ElementStyle> 

    <DataGridTextColumn.HeaderStyle> 
     <Style TargetType="{x:Type DataGridColumnHeader}"> 
     <Setter Property="Background" Value="LightCyan"/> 
     </Style> 
                  </DataGridTextColumn.HeaderStyle> 
    </DataGridTextColumn> 

基本的な違いは、DATAGRID 2列ヘッダーは "を有すること"が適用されます。私が手ディスプレイは次のようになります。

enter image description here

Datagrid2のclumnヘッダは、列ヘッダ下の「余分な空白」を示し??どうすれば削除できますか?

答えて

1

HeaderStyleをオーバーライドしています。ただ、default styleを使用すると、あまりにも他の部分を調整します。余分なスペースに関する

<DataGridTextColumn.HeaderStyle> 
     <Style TargetType="{x:Type DataGridColumnHeader}"> 
     <Setter Property="Background" Value="LightCyan"/> 
     <Setter Property="Foreground" Value="#FF000000" /> 
     <Setter Property="HorizontalContentAlignment" Value="Left" /> 
     <Setter Property="VerticalContentAlignment" Value="Center" /> 
     <Setter Property="IsTabStop" Value="False" /> 
     <Setter Property="SeparatorBrush" Value="#FFC9CACA" /> 
     <Setter Property="Padding" Value="4" /> 
    </Style> 
</DataGridTextColumn.HeaderStyle> 

注意が、効果的な部分はパディングです。あなたはデフォルトのスタイルを継承するBASEDONを使用することができます

編集 ノート。しかし、それが機能するには、DataGridリソースセクションの下に宣言する必要があります。 this answerを参照してください。

関連する問題