如何为 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>
我创建了一个 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>