此WPF列表视图中的边界来自何处

时间:2012-05-25 18:30:46

标签: wpf listview user-interface

我试图让listview以某种方式显示,并且我设法删除了大多数我不想要的UI元素,但我无法弄清楚所选项目的边界来自哪里。

它是在示例中选择的索引0。如何删除该边框? Example of problem

目前我是以下代码,用于删除背景和borderbrush。

<ListView ItemsSource="{Binding Path=Items}" Name="MainListView">
            <ListView.ItemContainerStyle>
 <Style TargetType="ListViewItem">
                    <Style.Triggers>
                        <Trigger Property="IsSelected" Value="True">
                            <Setter Property="Background" Value="{x:Null}" />
                            <Setter Property="BorderBrush" Value="{x:Null}" />
                            <Setter Property="BorderThickness" Value="0" />
                        </Trigger>

问题可能与我在鼠标悬停在标签上时的问题有关,我会得到第二个灰色行:enter image description here

2 个答案:

答案 0 :(得分:0)

目前,您正在使用触发器来更改样式,但您没有显示默认样式。如果您希望默认情况下没有边框,只需直接在样式上设置它。

答案 1 :(得分:0)

覆盖ListViewItem的Template并重写它,不包括产生不需要的效果的元素和触发器。您可以在VS11的XAML Designer或Blend中提取默认模板,也可以在MSDN reference中找到它们。我个人更喜欢完全重写它们,因为它允许我重构经常出现的XAML模板,而不是简单地通过将其默认值更改为{x:Null}来给出简单的假象。视觉树中的杂乱越少越好!