2010-04-15 4 views
3

Simple question:WPF: cliquez ListBox et faites glisser sélectionne d'autres articles

1) Je clique et maintenez la souris sur un ListBoxItem dans une zone de liste.
2) Maintenant, je fais glisser le curseur de la souris sur le ListBoxItem suivant dans la liste

Il sélectionne maintenant ce nouvel élément. Je voudrais désactiver cela. L'utilisateur doit donc cliquer sur un élément pour le sélectionner. Pas juste glisser dessus.

J'ai la sélection unique activée.

Toutes les idées sont très appréciés :)

Répondre

0

Je suppose primordial OnPreviewMouseMove fera. Lire this pour un problème similaire.

+0

Merci. Je vais essayer. Le lien que vous avez fourni ne fonctionnait pas. Avez-vous le lien direct? – Bodekaer

+0

http://social.msdn.microsoft.com/Forums/en-US/wpf/thread/0ed8731a-f7b1-4499-9ef9-fc5544fa7007 – majocha

2

Ceci est principalement pour le bénéfice de personnes comme moi qui ont encore besoin de savoir cela.

Le lien majocha fourni était la réponse, bien qu'il ne soit pas implémenté d'une manière particulièrement agréable autant que je peux voir, parce qu'il a un trou autour de l'événement MouseUp et son drapeau booléen. Pourquoi faire cela quand vous pouvez simplement interroger le MouseEventArgs pour savoir si le bouton est enfoncé? Peut-être que WPF à partir de 2010 n'avait pas cette capacité.

Alors, voici mon code pour WPF 4. Il vous suffit de gérer MouseMove sur le ListBox et dire ceci:

private void ListBox_MouseMove(object sender, MouseEventArgs e) 
{ 
    if (e.LeftButton == MouseButtonState.Pressed) 
     (sender as ListBox).ReleaseMouseCapture(); 
} 

Tada!

Questions connexes