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