2

问题可以通过以下代码重现:

<ListView>

    <ListView.ItemContainerStyle>
        <Style TargetType="{x:Type ListViewItem}">
            <Setter Property="VerticalContentAlignment" Value="Center" />
            <Setter Property="HorizontalContentAlignment" Value="Left" />
            <Style.Triggers>
                <Trigger Property="IsMouseOver" Value="True">
                    <Setter Property="Background" Value="{x:Null}" />
                    <Setter Property="BorderBrush" Value="{x:Null}" />
                </Trigger>
                <Trigger Property="IsSelected" Value="True">
                    <Setter Property="Background" Value="#FFEDC4" />
                    <Setter Property="BorderBrush" Value="{x:Null}" />
                </Trigger>
            </Style.Triggers>
        </Style>
    </ListView.ItemContainerStyle>

    <ListView.Items>
        <ListViewItem Height="70">Some item</ListViewItem>
        <ListViewItem Height="70">Some item</ListViewItem>
        <ListViewItem Height="70">Some item</ListViewItem>
        <ListViewItem Height="70">Some item</ListViewItem>
    </ListView.Items>

</ListView>

控件无法正确单击鼠标。单击项目文本效果很好并选择项目。单击文本之外的任何位置(因此在外部TextBox但在内部ListViewItem)有 80% 的时间有效,但每 5 次无效。该项目没有被选中。这不仅是视觉样式错误,而且该项目确实没有被选中,可以使用键盘箭头键进行检查。

一切都是在添加触发器后开始的。删除IsMouseOver触发器有帮助。

这里有什么问题?

4

1 回答 1

4

利用

<Setter Property="Background" Value="Transparent" />

而不是{x:Null}. 否则鼠标事件将不会被捕获。

于 2012-08-16T11:55:08.003 回答