J'utilise un WPF ListView avec une barre de défilement verticale toujours visible. J'ai un gestionnaire d'événements de Mouseleftbuttonup sur la listeView. Le gestionnaire fonctionne correctement, sauf lorsque la barre de défilement verticale est cliquée lorsqu'il n'a rien à faire, c'est-à-dire que la liste ListView ne dispose pas de suffisamment d'articles pour faire défiler.
Dans ce cas, rien ne devrait arriver car l'utilisateur a cliqué sur la verticale Scrollez de la barre juste pour vous assurer qu'il n'y a pas d'éléments seulement à l'écran. Cependant, la liste achemine l'événement MouseleftButtonUp. Si la barre de défilement verticale a des travaux de travail pour faire l'événement ne devient pas tiré. P>
Voici mon Simplified XAML P>
<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>
3 Réponses :
Dans mon propre réseau, j'ai de nombreuses colonnes contenant une image, une text-allées, des textes de texte avec des runs ... Suis-je censé vérifier pour tous ceux-ci?
Pour la liste de liste J'ai utilisé le code suivant:
if (e.OriginalSource is TextBlock || e.OriginalSource is Border) { // do your stuff }
Cela permettra de tirer des événements si vous cliquez sur la bordure des boutons de barre de défilement.
Aucune des autres réponses n'a travaillé dans mon cas à cause du style complexe dans le ListboxItem code>. Cela a cependant:
var item = ItemsControl.ContainerFromElement(sender as ItemsControl, (DependencyObject)e.OriginalSource) as ListBoxItem;
if (item != null)
{
// Handle it
}
Cela fonctionne pour moi aussi. D'autres réponses ne fonctionneront pas en raison des autres commandes de la liste de liste. Merci
Si vous avez utilisé MVVM et PASSEventArgStocommand = "true" code> La solution ci-dessus fonctionne également, il vous suffit de remplacer l'expéditeur par
E.Source code>