WPF Datagrid 单元格中的边距不可点击

Margin in WPF Datagrid cell not clickable

我为 WPF DataGrid 创建了自定义样式。

一件事是在每个单元格上添加边距。
工作正常,但是当你点击边距时你不能 select 一行。
我不知道如何解决这个问题。

<DataGrid ItemsSource="{Binding Items}">
   <DataGrid.CellStyle>
       <Style TargetType="{x:Type DataGridCell}">
            <Setter Property="Template">
                <Setter.Value>
                    <ControlTemplate TargetType="{x:Type DataGridCell}">
                        <!-- Here is the margin for every cell -->
                        <ContentPresenter Margin="20"/>
                    </ControlTemplate>
                </Setter.Value>
            </Setter>
        </Style>
   </DataGrid.CellStyle>

   <DataGrid.RowStyle>
        <Style TargetType="{x:Type DataGridRow}">
            <Setter Property="BorderThickness" Value="0 1 0 1"/>
            <Setter Property="BorderBrush" Value="{x:Null}"/>
            <Style.Triggers>
                <!-- mouseover works fine, even for the margin -->
                <Trigger Property="IsMouseOver" Value="True">
                    <Setter Property="BorderBrush" Value="Orange"/>
                </Trigger>
                <!-- this gets not set when you click on the margin in the cell, so you think when the row highlightes you also can select it, but you cant -->
                <Trigger Property="IsSelected" Value="True">
                    <Setter Property="Background" Value="Red"/>
                </Trigger>
            </Style.Triggers>
         </Style>
   </DataGrid.RowStyle>           
</DataGrid>

Margin="20" 在单元格内容周围创建空白区域,该区域不可点击,因为未填充任何内容。最简单的解决方法是添加具有透明背景的边框(参见相关 QA {x:Null} vs. Transparent brush

<ControlTemplate TargetType="{x:Type DataGridCell}">
    <!-- Here ist the margin for every cell -->
    <Border Background="Transparent">
        <ContentPresenter Margin="20"/>
    </Border>
</ControlTemplate>