56

私はWPFでプログラミングしています。DataGrid コントロールで、セルの中央のコンテンツを作成する方法が必要です。私もこのコードを使用します:

<DataGrid x:Name="dg1" HorizontalAlignment="Left" Margin="10,10,0,0"
    VerticalAlignment="Top" Height="360" Width="498"
    FontFamily="2  Badr" FontSize="18" 
    AlternatingRowBackground="LightCoral" FlowDirection="RightToLeft"
    HorizontalContentAlignment="Center" VerticalContentAlignment="Center" 
    Background="{x:Null}"/>

なにが問題ですか?

4

9 に答える 9

118

DataGridCell スタイルを設定する必要があります

    <DataGrid>
        <DataGrid.Columns>
            <DataGridTextColumn>
                <DataGridTextColumn.ElementStyle>
                    <Style TargetType="TextBlock">
                        <Setter Property="HorizontalAlignment" Value="Center" />
                    </Style>
                </DataGridTextColumn.ElementStyle>
            </DataGridTextColumn>
        </DataGrid.Columns>
    </DataGrid>
于 2013-08-12T03:15:00.257 に答える
13

他の回答で述べたように:

<Setter Property="HorizontalAlignment" Value="Center" />

Horizo​​ntalAlignment

これは、背景などの他のスタイルに影響します。テキストを中央にのみ配置するには、代わりにこれを使用します。

<Setter Property="TextAlignment" Value="Center" />

テキストアライン

于 2016-01-23T17:36:52.823 に答える
8

たぶん、スタイルを作成するだけです:

<Window.Resources>
    <Style TargetType="DataGridCell">
        <Setter Property="HorizontalAlignment" Value="Center" />
    </Style>
</Window.Resources>  

編集しました。

于 2013-08-12T09:32:43.380 に答える
1

WPF DataGrid でテキストを中央揃えにする方法

<DataGrid >
    <DataGrid.CellStyle>
        <Style TargetType="DataGridCell">
            <Setter Property="TextBlock.TextAlignment" Value="Center" />
        </Style>
    </DataGrid.CellStyle>
    <DataGrid.ColumnHeaderStyle>
        <Style TargetType="DataGridColumnHeader">
            <Setter Property="Label.HorizontalContentAlignment" Value="Center" />
        </Style>
    </DataGrid.ColumnHeaderStyle>
</DataGrid>
于 2019-07-13T17:01:24.957 に答える
1

日付を DataGridTemplateColumn の中央に配置する場合

 <DataGridTemplateColumn SortMemberPath="DataDiNascita" Header="Data di nascita" IsReadOnly="False">
                <DataGridTemplateColumn.CellEditingTemplate>                        
                    <DataTemplate>
                        <DatePicker SelectedDate="{Binding Path=DataDiNascita,Mode=TwoWay}" VerticalAlignment="Center" HorizontalAlignment="Left">                                
                        </DatePicker>                           
                    </DataTemplate>
                </DataGridTemplateColumn.CellEditingTemplate>
                <DataGridTemplateColumn.CellTemplate>                        
                    <DataTemplate>
                        <TextBlock Text="{Binding Path=DataDiNascita,Mode=TwoWay,StringFormat=\{0:dd/MM/yyyy\}}"  VerticalAlignment="Center" HorizontalAlignment="Left">                              
                        </TextBlock>
                    </DataTemplate>
                </DataGridTemplateColumn.CellTemplate>
            </DataGridTemplateColumn>
于 2014-03-27T08:00:56.923 に答える
0

私の場合、これ(非常に単純)は正常に機能しています:

<DataGrid
    x:Name="MyDataGrid"
    ...
    TextBlock.TextAlignment="Center">
</DataGrid>
于 2021-09-27T23:13:56.220 に答える