如何为 DataGridTextColumn 和其中的文本设置边距?

How to set margin for DataGridTextColumn and text inside it?

我创建了一个 DataGrid:

<DataGrid x:Name="dataGrid"
                                  AutoGenerateColumns="False"
                                  Grid.Row="1" Grid.Column="0" Grid.ColumnSpan="2" 
                                  IsEnabled="True"
                                  IsReadOnly="False"
                                  CanUserAddRows="False"
                                  CanUserDeleteRows="False"
                                  Loaded="dgAttfs_Loaded"
                                  RowEditEnding="dataGrid_RowEditEnding"

                                  ItemsSource="{Binding ViewModel.RowColl,Mode=TwoWay,UpdateSourceTrigger=LostFocus}"
                                  >

                            <DataGrid.Columns>
                                <DataGridTextColumn Binding="{Binding Name}" MinWidth="120" Width="Auto                                                             
                                                    Header="Name" 
                                                    />
                                <DataGridComboBoxColumn x:Name="typeColumn" MinWidth="220"                                       
                                    SelectedItemBinding="{Binding Path=Type}"                                        
                                    Header="Type"                                                          
                                                        >
                                    <DataGridComboBoxColumn.ItemsSource>
                                        <col:ArrayList>
                                            <sys:String>1</sys:String>
                                            <sys:String>2</sys:String>
                                            <sys:String>3</sys:String>
                                            <sys:String>4</sys:String>
                                            <sys:String>5</sys:String>
                                            <sys:String>6</sys:String>
                                            <sys:String>7</sys:String>
                                            <sys:String>8</sys:String>
                                        </col:ArrayList>
                                    </DataGridComboBoxColumn.ItemsSource>                                                                              
                                </DataGridComboBoxColumn>                                    
                            </DataGrid.Columns>                                                                                           
                        </DataGrid>

但是,我不明白如何将边距设置为列文本(从左侧开始)。 我的意思是,该文本紧贴 table(左侧)。 我可以为文本设置边距吗?

您可以创建一个带有 DataGridTemplateColumn 自定义模板,您可以在其 DataTemplate 中放置一个文本块想要。

  <DataGrid Name="dgUsers" AutoGenerateColumns="False">
    <DataGrid.Columns>
        <DataGridTextColumn Header="Name" Binding="{Binding Name}" />
        <DataGridTemplateColumn Header="Birthday">
            <DataGridTemplateColumn.CellTemplate>
                <DataTemplate>
                    <Textblock Text="{Binding Name}" BorderThickness="0" />
                </DataTemplate>
            </DataGridTemplateColumn.CellTemplate>
        </DataGridTemplateColumn>
    </DataGrid.Columns>
</DataGrid>

Source