Search code examples
wpfdatagrid

I can not align the text inside the data grid horizontally in wpf C#


I want to align my columns in the datagrid. How should I do this? I also used HorizontalContentAlignment = "Center" but it did not work. Thank you for your help

    <DataGrid Margin="0,69,0,0" x:Name="dgv_Useradmin" FlowDirection="RightToLeft"
              CanUserDeleteRows="False" CanUserResizeRows="False" CanUserReorderColumns="False" ColumnWidth="*" Background="Azure"
              FontFamily="B Roya" FontWeight="Bold" FontStretch="UltraCondensed" BorderBrush="#29bb89" OpacityMask="#e84545" HorizontalAlignment="Center"
              CanUserAddRows="False" AlternatingRowBackground="Bisque" IsReadOnly="True" AutoGenerateColumns="False" HorizontalContentAlignment="Center"
              RowDetailsVisibilityMode="Visible" SelectedIndex="0" LoadingRow="Dgv_Useradmin_OnLoadingRow">

        <!--DataColumn-->
        <DataGrid.Columns>
            <DataGridTextColumn Header="RN" Width="65" Binding="{Binding RelativeSource={RelativeSource AncestorType=DataGridRow}, Converter={convertor:RowToIndexConverter}}"/>
            <DataGridTextColumn Header="LogID" Binding="{Binding LogID}" Visibility="Hidden"/>
            <DataGridTextColumn Header="Username" Binding="{Binding Username }"/>
            <DataGridTextColumn Header="Pass" Binding="{Binding PassWord}" Visibility="Hidden"/>
            <DataGridTextColumn Header="Number" Binding="{Binding NumberPhone}"/>
        </DataGrid.Columns>

Solution

  • Shown for one column. For the rest of the columns, the same is true.

            <DataGrid.Columns>
                <DataGridTemplateColumn Header="RN" Width="65">
                    <DataGridTemplateColumn.CellTemplate>
                        <DataTemplate>
                            <TextBlock Text="{Binding RelativeSource={RelativeSource AncestorType=DataGridRow}, Converter={convertor:RowToIndexConverter}}"
                                       TextAlignment="Center"/>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellTemplate>
                    <!--If editing is envisaged-->
                    <DataGridTemplateColumn.CellEditingTemplate>
                        <DataTemplate>
                            <TextBox Text="{Binding RelativeSource={RelativeSource AncestorType=DataGridRow}, Converter={convertor:RowToIndexConverter}}"
                                     HorizontalContentAlignment="Center"/>
                        </DataTemplate>
                    </DataGridTemplateColumn.CellEditingTemplate>
                </DataGridTemplateColumn>
                <DataGridTextColumn Header="LogID" Binding="{Binding LogID}" Visibility="Hidden"/>
                <DataGridTextColumn Header="Username" Binding="{Binding Username }"/>
                <DataGridTextColumn Header="Pass" Binding="{Binding PassWord}" Visibility="Hidden"/>
                <DataGridTextColumn Header="Number" Binding="{Binding NumberPhone}"/>
            </DataGrid.Columns>