Partager via


Comment : détecter l'état du bouton de la souris

Mise à jour : novembre 2007

Cet exemple montre comment utiliser les événements de bouton de la souris et la propriété MouseButtonState pour déterminer si un bouton spécifique de la souris est enfoncé ou relâché.

Cet exemple se compose d'un fichier XAML (Extensible Application Markup Language) et d'un fichier code-behind. Pour obtenir l'exemple complet, consultez l'exemple Détection de l'état du bouton de la souris, exemple.

Exemple

Le code suivant crée l'interface utilisateur qui se compose d'un TextBlock à l'intérieur d'un StackPanel et joint des gestionnaires d'événements pour les événements MouseLeftButtonDown et MouseLeftButtonUp.

<StackPanel Height="100" Width="100" 
    MouseLeftButtonDown="HandleButtonDown" 
    MouseLeftButtonUp="HandleButtonDown" 
    Background="#d08080"
    DockPanel.Dock="Left"
    >
  <TextBlock>Click on Me</TextBlock>
</StackPanel>

Le code-behind suivant crée les gestionnaires d'événements MouseLeftButtonUp et MouseLeftButtonDown. Lorsque le bouton gauche de la souris est enfoncé, les dimensions de TextBlock augmentent. Lorsque le bouton gauche est relâché, les dimensions de TextBlock retrouvent leur hauteur et leur largeur d'origine.

Partial Public Class Window1
    Inherits Window

    Public Sub New()
        InitializeComponent()
    End Sub
    Private Sub HandleButtonDown(ByVal sender As Object, ByVal e As MouseButtonEventArgs)

        ' Casting the source to a StackPanel
        Dim sourceStackPanel As StackPanel = CType(e.Source, StackPanel)

        ' If the button is pressed then make dimensions larger.
        If e.ButtonState = MouseButtonState.Pressed Then
            sourceStackPanel.Width = 200
            sourceStackPanel.Height = 200

            ' If the button is released then make dimensions smaller.
        ElseIf e.ButtonState = MouseButtonState.Released Then
            sourceStackPanel.Width = 100
            sourceStackPanel.Height = 100
        End If
    End Sub

End Class
    public Window1()
    {
        InitializeComponent();
    }

    void HandleButtonDown(object sender, MouseButtonEventArgs e)
    {
        //Casting the source to a StackPanel
        StackPanel sourceStackPanel = e.Source as StackPanel;

        //If the button is pressed then make dimensions larger.
        if (e.ButtonState == MouseButtonState.Pressed)
        {
            sourceStackPanel.Width = 200;
            sourceStackPanel.Height = 200;
        }

        //If the button is released then make dimensions smaller.
        else if (e.ButtonState == MouseButtonState.Released)
        {
            sourceStackPanel.Width = 100;
            sourceStackPanel.Height = 100;
        }
    }

}

Voir aussi

Tâches

Détection de l'état du bouton de la souris, exemple

Concepts

Vue d'ensemble des entrées