WPF ListView删除mouseover higligth

时间:2017-02-06 19:45:16

标签: c# wpf listview

我有一个包含另一个UserControl的WPF Listview。它工作正常,但我无法删除鼠标蓝色突出显示并选中。

这里是代码:

<UserControl.Resources>

      <Style TargetType="{x:Type ListViewItem}">
        <Setter Property="Background" Value="Transparent" />
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="{x:Type ListViewItem}">
                    <Border
                     BorderBrush="Transparent"
                     BorderThickness="0"
                     Background="{TemplateBinding Background}">
                        <GridViewRowPresenter HorizontalAlignment="Stretch" VerticalAlignment="{TemplateBinding VerticalContentAlignment}" Width="Auto" Margin="0" Content="{TemplateBinding Content}"/>
                    </Border>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>

    <DataTemplate DataType="{x:Type vm:ElementViewModel}" x:Key="ElementTemplate">
        <vw:ElementView />
    </DataTemplate>

</UserControl.Resources>

<GroupBox Header="{x:Static Translate:Translate.CreateLoop}">

    <ListView ItemsSource="{Binding Path=ElementList, UpdateSourceTrigger=PropertyChanged}"  
              ItemTemplate="{StaticResource ElementTemplate}"
              Background="{StaticResource EnvLayout}"
              BorderBrush="Transparent">
        <ListView.ItemContainerStyle>
            <Style TargetType="{x:Type ListViewItem}">
                <Style.Resources>
                     <!--Foreground for Selected ListViewItem--> 
                    <SolidColorBrush x:Key="{x:Static SystemColors.HighlightTextBrushKey}" Color="Black"/>
                     <!--Background for Selected ListViewItem--> 
                    <SolidColorBrush x:Key="{x:Static SystemColors.ControlBrushKey}" Color="Transparent"/>
                    <SolidColorBrush x:Key="{x:Static SystemColors.HighlightBrushKey}" Color="Transparent"/>
                    <SolidColorBrush x:Key="ItemBackgroundHover" Color="Transparent"/>
                </Style.Resources>
            </Style>
        </ListView.ItemContainerStyle>
    </ListView>


</GroupBox>

datatemplate用于将视图与相应的viewmodel绑定。 这里鼠标悬停在我要移除的样式

enter image description here

1 个答案:

答案 0 :(得分:1)

试试这个

添加样式

<UserControl.Resources>
    <Style x:Key="MyStyle" TargetType="ListViewItem">
        <Setter Property="Template">
            <Setter.Value>
                <ControlTemplate TargetType="ListViewItem">
                    <Grid Background="{TemplateBinding Background}">
                        <ContentPresenter HorizontalAlignment="{TemplateBinding HorizontalAlignment}"
                    />
                    </Grid>
                </ControlTemplate>
            </Setter.Value>
        </Setter>
    </Style>
</UserControl.Resources>

删除你的风格,而不是

ItemContainerStyle="{StaticResource MyStyle}"