9
votes

PointerPressé: bouton gauche ou droit?

Comment puis-je obtenir le type de pointeur pressé (gauche de la souris enfoncée ou la souris droite) dans une application C # Style Metro? Je n'ai pas trouvé de manutention Mouseleftbuttonown dans n'importe quel élément de style métro. Je devrais utiliser l'événement pointerPressed à la place, mais je ne sais pas comment puis-je obtenir quel bouton a été enfoncé.


1 commentaires

Il y a un exemple de code ici


3 Réponses :


3
votes

Vous pouvez utiliser l'événement suivant pour déterminer quel pointeur est utilisé et quel bouton est enfoncé.

private void Target_PointerMoved(object sender, PointerRoutedEventArgs e)
{
    Windows.UI.Xaml.Input.Pointer ptr = e.Pointer;
    Windows.UI.Input.PointerPoint ptrPt = e.GetCurrentPoint(Target);

    if (ptrPt.Properties.IsLeftButtonPressed)
    {
        //Do stuff
    }
    if (ptrPt.Properties.IsRightButtonPressed)
    {
        //Do stuff
    }
}


0 commentaires

13
votes

PointerPressed est suffisant pour gérer les boutons de la souris:

void MainPage_PointerPressed(object sender, PointerRoutedEventArgs e)
{
    // Check for input device
    if (e.Pointer.PointerDeviceType == Windows.Devices.Input.PointerDeviceType.Mouse)
    {
        var properties = e.GetCurrentPoint(this).Properties;
        if (properties.IsLeftButtonPressed)
        {
            // Left button pressed
        }
        else if (properties.IsRightButtonPressed)
        {
            // Right button pressed
        }
    }
}


1 commentaires

J'ai une application UWP et lorsque vous ajoutez un gestionnaire à un événement MousePressed , il est tiré uniquement sur la souris clic droit.



0
votes

Travailler sur un projet UWP et des réponses précédentes comme Propriétés.SleftButtonprimé / IsrightbuttonPressé n'a pas fonctionné pour moi. Ces valeurs sont toujours fausses. J'ai réalisé pendant le débogage de cette propriété.PointerUpdatekind changeait en fonction du bouton de la souris. Voici le résultat qui a fonctionné pour moi:

var properties = e.GetCurrentPoint(this).Properties;
if (properties.PointerUpdateKind == Windows.UI.Input.PointerUpdateKind.LeftButtonReleased)
{

}
else if (properties.PointerUpdateKind == Windows.UI.Input.PointerUpdateKind.RightButtonReleased)
{

}
else if (properties.PointerUpdateKind == Windows.UI.Input.PointerUpdateKind.MiddleButtonReleased)
{

}


0 commentaires