0

In my wpf project, I have a datagrid with rows with rounded corners, this is how my xaml looks:

<DataGrid x:Name="Tasks" SelectedCellsChanged="Tasks_SelectedCellsChanged" CanUserDeleteRows="True" IsReadOnly="False" AutoGenerateColumns="False" HorizontalAlignment="Left" Height="413" Margin="20,50,0,0" VerticalAlignment="Top" Width="1100" Background="Transparent" HorizontalGridLinesBrush="Transparent" VerticalGridLinesBrush="Transparent" RowBackground="#202020">
                            <DataGrid.RowStyle>
                                <Style TargetType="DataGridRow">
                                    <Setter Property="Template">
                                        <Setter.Value>
                                            <ControlTemplate TargetType="{x:Type DataGridRow}">
                                                <Border x:Name="DGR_Border" BorderBrush="Transparent" 
                                    BorderThickness="0" 
                                    Background="{TemplateBinding Background}" 
                                    SnapsToDevicePixels="True"
                                    CornerRadius="20">
                                                    <SelectiveScrollingGrid>
                                                        <SelectiveScrollingGrid.ColumnDefinitions>
                                                            <ColumnDefinition Width="Auto"/>
                                                            <ColumnDefinition Width="*"/>
                                                        </SelectiveScrollingGrid.ColumnDefinitions>
                                                        <SelectiveScrollingGrid.RowDefinitions>
                                                            <RowDefinition Height="*"/>
                                                            <RowDefinition Height="Auto"/>
                                                        </SelectiveScrollingGrid.RowDefinitions>
                                                        <DataGridCellsPresenter Grid.Column="1" ItemsPanel="{TemplateBinding ItemsPanel}" SnapsToDevicePixels="{TemplateBinding SnapsToDevicePixels}"/>
                                                        <DataGridDetailsPresenter Grid.Column="1" Grid.Row="1" SelectiveScrollingGrid.SelectiveScrollingOrientation="{Binding AreRowDetailsFrozen, ConverterParameter={x:Static SelectiveScrollingOrientation.Vertical}, Converter={x:Static DataGrid.RowDetailsScrollingConverter}, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}" Visibility="{TemplateBinding DetailsVisibility}"/>
                                                        <DataGridRowHeader Grid.RowSpan="2" SelectiveScrollingGrid.SelectiveScrollingOrientation="Vertical" Visibility="{Binding HeadersVisibility, ConverterParameter={x:Static DataGridHeadersVisibility.Row}, Converter={x:Static DataGrid.HeadersVisibilityConverter}, RelativeSource={RelativeSource AncestorType={x:Type DataGrid}}}"/>
                                                    </SelectiveScrollingGrid>
                                                </Border>
                                            </ControlTemplate>
                                        </Setter.Value>
                                    </Setter>
                                </Style>
                            </DataGrid.RowStyle>
                            <DataGrid.Columns>
                                <DataGridTextColumn Header="..." Binding="{Binding ..., UpdateSourceTrigger=PropertyChanged}"/>
                                <DataGridTextColumn Header="..." Binding="{Binding ..., UpdateSourceTrigger=PropertyChanged}"/>
                                <DataGridTextColumn Header="..." Binding="{Binding ..., UpdateSourceTrigger=PropertyChanged}"/>
                                <DataGridTextColumn Header="..." Binding="{Binding ..., UpdateSourceTrigger=PropertyChanged}"/>
                                <DataGridTextColumn Header="..." Binding="{Binding ..., UpdateSourceTrigger=PropertyChanged}"/>
                                <DataGridTextColumn Header="..." Binding="{Binding ..., UpdateSourceTrigger=PropertyChanged}"/>
                                <DataGridTextColumn Header="..." Binding="{Binding ..., UpdateSourceTrigger=PropertyChanged}"/>
                                <DataGridTextColumn Header="..." Binding="{Binding ..., UpdateSourceTrigger=PropertyChanged}"/>
                                <DataGridTextColumn Header="..." Binding="{Binding ..., Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
                                <DataGridTemplateColumn Header="Actions">
                                    <DataGridTemplateColumn.HeaderStyle>
                                        <Style BasedOn="{StaticResource MaterialDesignDataGridColumnHeader}" TargetType="{x:Type DataGridColumnHeader}">
                                            <Setter Property="HorizontalContentAlignment" Value="Right" />
                                        </Style>
                                    </DataGridTemplateColumn.HeaderStyle>
                                    <DataGridTemplateColumn.CellStyle>
                                        <Style TargetType="DataGridCell">
                                            <Setter Property="Background" Value="#262626" />
                                            <Setter Property="Height" Value="30"/>
                                        </Style>
                                    </DataGridTemplateColumn.CellStyle>
                                    <DataGridTemplateColumn.CellTemplate>
                                        <DataTemplate>
                                            <StackPanel Orientation="Horizontal">
                                                <Button Click="Start_Task_Click" Background="Transparent" BorderBrush="Transparent">
                                                    <materialDesign:PackIcon Kind="Play" Foreground="White"/>
                                                </Button>
                                                <Button Margin="5,0,0,0" Click="Stop_Button_Click" Background="Transparent" BorderBrush="Transparent">
                                                    <materialDesign:PackIcon Kind="Stop" Foreground="White"/>
                                                </Button>
                                                <Button Margin="5,0,0,0" Click="Edit_Task" Background="Transparent" BorderBrush="Transparent">
                                                    <materialDesign:PackIcon Kind="Pencil" Foreground="White"/>
                                                </Button>
                                                <Button Margin="5,0,0,0" Click="Delete_Button_Click" Background="Transparent" BorderBrush="Transparent">
                                                    <materialDesign:PackIcon Kind="Delete" Foreground="White"/>
                                                </Button>
                                            </StackPanel>
                                        </DataTemplate>
                                    </DataGridTemplateColumn.CellTemplate>
                                </DataGridTemplateColumn>
                            </DataGrid.Columns>
                        </DataGrid>

How would I be able to add a margin between rows without messing up the rounded corners? Sorry if this is a stupid question, but I am very terrible at styling anything in xaml. I have tried following the answers from this question, but they are mostly to add padding to the columns and not the rows.

SOLUTION

Put a Margin in the DRG_Border

lobster123
  • 49
  • 1
  • 9
  • The whole row goes in DGR_BORDER. What happens when you add a margin to DGR_Border ? Like Margin="0,5,0,0" I'd try it myself but you failed to give us a minimum reproduction. – Andy Dec 31 '19 at 14:20
  • Thanks for the answer, it works. I'm so annoyed for not realising it before. – lobster123 Dec 31 '19 at 14:45

0 Answers0