单击空白区域时如何处理事件?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了单击空白区域时如何处理事件?相关的知识,希望对你有一定的参考价值。
我想在列表视图左键单击空白区域时捕获事件 - 即单击列表视图控件中的任何项目。
我在列表视图的事件列表中搜索但没有找到。我怎样才能做到这一点?请帮忙!
[编辑]如果我能抓住这个事件,我想做什么:取消选择列表视图中的所有项目。
答案
如果将处理程序附加到ListView上的MouseLeftButtonDown事件,则只会在单击ListViewItem外部的区域时触发。项目内的任何点击都将由项目本身处理,以驱动ListView的选择行为。
您可以通过在ListView上设置ItemContainerStyle来调整背景({x:Null}不可点击,其他任何东西)和ListViewItems的边距来更改可点击区域。还要确保您没有在ListView本身上使用空背景(白色是默认设置,透明也可以)。
另一答案
ListBoxItem
控件处理ListBox上的点击。你应该:
- 在ListBox上使用
PreviewMouseDown
事件 - 通过
myListBox.AddHandler
方法在代码中添加事件处理程序
有关说明和代码示例,请参阅How to Attach to MouseDown Event on ListBox。
另一答案
我发现如果我之前单击了listview中的一个项目(从而选择了它),那么接下来双击listview中的空白区域会导致先前选择的项目被操作的不良结果,就像它被双击一样在(而不是空的空间)。为了解决这个问题,我使用了以下代码(vb.net):
Private Sub ListView1_MouseLeftButtonDown(sender As Object, e As MouseButtonEventArgs) Handles ListView1.MouseLeftButtonDown
ListView1.SelectedIndex = -1
End Sub
使用此代码双击空白空间取消选择任何先前选择的项目,并且当用户双击空白区域时,具有所需的效果。
以上是关于单击空白区域时如何处理事件?的主要内容,如果未能解决你的问题,请参考以下文章