如何在WPF中设置listviewitem周围的边框

如何在WPF中设置listviewitem周围的边框,wpf,Wpf,我的ListView应具有以下样式: 整个ListView周围没有边框(已实现) 与ListViewItem交互时不突出显示(已实现) 选定的列表视图项周围的边框(缺少) 我的列表视图: <ListView DisplayMemberPath="Name" BorderThickness="0" > <ListView.ItemContainerStyle> <Style TargetType="{x:Type ListV

我的ListView应具有以下样式:

  • 整个ListView周围没有边框(已实现)
  • 与ListViewItem交互时不突出显示(已实现)
  • 选定的列表视图项周围的边框(缺少)
我的列表视图:

<ListView DisplayMemberPath="Name" BorderThickness="0" >
        <ListView.ItemContainerStyle>
            <Style TargetType="{x:Type ListViewItem}">
                <!-- get rid of the highlighting -->
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="{x:Type ListViewItem}">
                            <ContentPresenter />
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
                <!-- style selected item -->
                <Style.Triggers>
                    <Trigger Property="IsSelected" Value="True">
                        <Setter Property="FontSize" Value="20" />
                        <Setter Property="FontWeight" Value="Bold" />
                    </Trigger>
                </Style.Triggers>
            </Style>
        </ListView.ItemContainerStyle>
    </ListView>

我试过了,但都不适合我。我想我的问题是模板,但我不知道如何在选定的ListViewItem周围放置边框

更新

工作解决方案:

    <ListView DisplayMemberPath="Name" BorderThickness="0" >
        <ListView.ItemContainerStyle>
            <Style TargetType="{x:Type ListViewItem}">
                <!-- get rid of the highlighting -->
                <Setter Property="Template">
                    <Setter.Value>
                        <ControlTemplate TargetType="{x:Type ListViewItem}">
                            <Border x:Name="Border">
                                <ContentPresenter />
                            </Border>
                            <ControlTemplate.Triggers>
                                <Trigger Property="IsSelected" Value="True">
                                    <Setter Property="FontSize" Value="20" />
                                    <Setter Property="FontWeight" Value="Bold" />
                                    <Setter TargetName="Border" Property="BorderBrush" Value="Black"/>
                                    <Setter TargetName="Border" Property="BorderThickness" Value="2"/>
                                </Trigger>
                            </ControlTemplate.Triggers>
                        </ControlTemplate>
                    </Setter.Value>
                </Setter>
            </Style>
        </ListView.ItemContainerStyle>
    </ListView>

也许这样行得通。在ContentPresenter周围添加边框使用controlTemplate触发器

 <ControlTemplate TargetType="{x:Type ListViewItem}">
                                <Border x:Name="Border">
                                    <ContentPresenter />
                                </Border>
                                <ControlTemplate.Triggers>
                                    <Trigger Property="IsSelected" Value="True">
                                        <Setter Property="FontSize" Value="20" />
                                        <Setter Property="FontWeight" Value="Bold" />
                                        <Setter TargetName="Border" Property="BorderBrush" Value="Red"/>
                                        <Setter TargetName="Border" Property="BorderThickness" Value="1"/>
                                    </Trigger>
                                </ControlTemplate.Triggers>
                            </ControlTemplate>