2016-09-01 38 views
0

私はこのDataGrid構造をしました:DataGridColumnテキスト(ヘッダーではない)を中央に配置するにはどうすればいいですか?

<DataGrid AutoGenerateColumns="False" 
           CanUserAddRows="False" 
           HorizontalContentAlignment="Center" 
           CanUserResizeColumns="False" 
           CanUserSortColumns="False" 
           CanUserResizeRows="False" 
           BorderBrush="DimGray" 
           BorderThickness="1" 
           IsReadOnly="True" 
           ItemsSource="{Binding MatchStats}" 
           HorizontalAlignment="Right" 
           Width="255" 
           Margin="10, 10, 30, 0"> 
        <DataGrid.Columns> 
         <DataGridTextColumn Header="Foo" Binding="{Binding Path = PlayingMatch}" > 
          <DataGridTextColumn.HeaderStyle> 
           <Style TargetType="{x:Type DataGridColumnHeader}" BasedOn="{StaticResource MetroDataGridColumnHeader}"> 
            <Setter Property="Background" Value="LightGreen" /> 
            <Setter Property="Width" Value="85" /> 
           </Style> 
          </DataGridTextColumn.HeaderStyle> 
         </DataGridTextColumn> 
         ... 

私はセンターに行のDataGridテキストを設定されて何をする必要がありますか。私は実際にヘッダーでこの状況を管理しましたが、行に対してこれを行うことはできません。スタック上に他の同様の質問がありましたが、これらはすべてtextblockを使用しています。画像でどのように見えるかはわかりません。

これは可能ですか?

実際の結果:

enter image description here

3 0は、センターに行く必要があります。

答えて

2

はDataGridTextColumnは、テキストのためのTextBlockで構築され

<Style x:Key="{x:Type DataGridCell}" TargetType="DataGridCell"> 
     <Setter Property="Template"> 
      <Setter.Value> 
       <ControlTemplate TargetType="{x:Type DataGridCell}"> 
        <Grid> 
         <ContentPresenter HorizontalAlignment="Center" VerticalAlignment="Center"></ContentPresenter> 
        </Grid>       
       </ControlTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 
0

あなたwindows.resourcesセクションで、次のスタイルを追加します。だからあなたが提供したコードのように変更されていないときは、TextBlock.TextAlignmentで動作します。

<Style TargetType="{x:TypeDataGridCell}"> 
    <Style.Setters> 
     <Setter Property="TextBlock.TextAlignment" Value="Center" /> 
    </Style.Setters> 
</Style> 
関連する問題