C# 从列表框项目选择中排除边距

C# 从列表框项目选择中排除边距,c#,wpf,listbox,listboxitem,C#,Wpf,Listbox,Listboxitem,我有一个列表框 <ListBox Margin="10" ItemsSource="{Binding Employees}" ItemTemplate="{DynamicResource EmployeesTemplate}" HorizontalContentAlignment="Stretch" BorderThickness="0" ScrollViewer.CanContentScroll="False"/> <

我有一个
列表框

<ListBox Margin="10" ItemsSource="{Binding Employees}" 
         ItemTemplate="{DynamicResource EmployeesTemplate}"
         HorizontalContentAlignment="Stretch" BorderThickness="0" 
         ScrollViewer.CanContentScroll="False"/>
<DataTemplate.Triggers>
    <DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor, 
                         AncestorType={x:Type ListBoxItem}}, Path=IsMouseOver}" Value="True">
        <Setter Property="Background" Value="LightBlue" TargetName="EmployeesTemplateBorder"/>
    </DataTrigger>

    <DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor, 
                         AncestorType={x:Type ListBoxItem}}, Path=IsSelected}" Value="True">
        <Setter Property="Background" Value="RoyalBlue" TargetName="EmployeesTemplateBorder"/>
    </DataTrigger>
</DataTemplate.Triggers>
当我从
列表框
中选择一个项目时,突出显示的选择包括分配给每个项目底部的5点
边距
数据模板
中的
边框
):

在左侧,您会注意到类似的情况,高光稍微溢出。直到现在我才注意到。。。嗯。所以,我想将选择突出显示限制在边界区域,不在边界区域之外,并且能够保留项目之间的边距


我将如何做到这一点?我试着尽可能地操纵
填充
边距
,但我想不出来。也许我必须创建一个自定义的
列表框

我不确定是否有更简单的方法,但它对我有效。我在我的
DataTemplate
中添加了一个
DataTemplate.Triggers
部分

<ListBox Margin="10" ItemsSource="{Binding Employees}" 
         ItemTemplate="{DynamicResource EmployeesTemplate}"
         HorizontalContentAlignment="Stretch" BorderThickness="0" 
         ScrollViewer.CanContentScroll="False"/>
<DataTemplate.Triggers>
    <DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor, 
                         AncestorType={x:Type ListBoxItem}}, Path=IsMouseOver}" Value="True">
        <Setter Property="Background" Value="LightBlue" TargetName="EmployeesTemplateBorder"/>
    </DataTrigger>

    <DataTrigger Binding="{Binding RelativeSource={RelativeSource Mode=FindAncestor, 
                         AncestorType={x:Type ListBoxItem}}, Path=IsSelected}" Value="True">
        <Setter Property="Background" Value="RoyalBlue" TargetName="EmployeesTemplateBorder"/>
    </DataTrigger>
</DataTemplate.Triggers>
显然,这对前景没有任何影响,但这不是现在要考虑的问题,因为这一点与突出显示例程相比相对容易