sip*_*wiz 8 wpf listview scrollbar
我正在使用带有始终可见的垂直滚动条的WPF ListView.我在ListView上有一个MouseLeftButtonUp事件处理程序.处理程序工作正常,除非单击垂直滚动条时没有任何操作,即ListView框没有足够的项目来进行任何滚动.
在这种情况下,当用户点击垂直滚动条只是为了确保屏幕上没有项目时,不会发生任何事情.但是ListView会触发MouseLeftButtonUp事件.如果垂直滚动条确实有一些工作要做,事件不会被触发.
这是我简化的XAML
<ListView MouseLeftButtonUp="DoSomething_MouseLeftButtonUp" SelectionMode="Single" ScrollViewer.VerticalScrollBarVisibility="Visible">
<ListView.View>
<GridView>
<GridViewColumn Width="170" Header="Venue" DisplayMemberBinding="{Binding Path=Venue}" />
</GridView>
</ListView.View>
</ListView>
Run Code Online (Sandbox Code Playgroud)
无论如何阻止MouseLeftButtonUp事件在单击垂直滚动条时触发,无论滚动条是否有任何工作要做?
在我的案例中,由于复杂的样式,其他任何一个答案都没有起作用ListBoxItem.但这确实如此:
var item = ItemsControl.ContainerFromElement(sender as ItemsControl, (DependencyObject)e.OriginalSource) as ListBoxItem;
if (item != null)
{
// Handle it
}
Run Code Online (Sandbox Code Playgroud)