프로그래밍/WPF

[WPF] DataGridTemplateColumn 내의 Grid Margin 없애기

흔한티벳여우 2021. 12. 6. 14:52
반응형

DataGrid를 사용하다가 DataGridTemplateColumn을 이용하여 원하는 템플릿을 만들어 쓴다고 할때,

내부에 Grid를 사용하면 아래의 그림과 같이 상하좌우 마진이 생긴다.

<DataGridTemplateColumn Header="Group"
                    Width="Auto">
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <Grid HorizontalAlignment="Stretch" Background="Red">
                <TextBlock Text="{Binding Group}" Foreground="White" HorizontalAlignment="Center"/>
            </Grid>
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
</DataGridTemplateColumn>

 

이때 마진을 줄이고 싶으면 CellStyle에서 DataGridCell의 마진을 줄이면된다.

<DataGridTemplateColumn Header="Group"
                    Width="Auto">
    <DataGridTemplateColumn.CellTemplate>
        <DataTemplate>
            <Grid HorizontalAlignment="Stretch" Background="Red">
                <TextBlock Text="{Binding Group}" Foreground="White" HorizontalAlignment="Center"/>
            </Grid>
        </DataTemplate>
    </DataGridTemplateColumn.CellTemplate>
    <DataGridTemplateColumn.CellStyle>
        <Style TargetType="{x:Type DataGridCell}" BasedOn="{StaticResource {x:Type DataGridCell}}">
            <Setter Property="Margin" Value="0" />
        </Style>
    </DataGridTemplateColumn.CellStyle>
</DataGridTemplateColumn>

반응형