Como: Detectar o Estado do Botão do Mouse
Este exemplo mostra como usar eventos de botão do mouse e a propriedade MouseButtonState para determinar se um botão do mouse específico é pressionado ou liberado.
Esse exemplo consiste em um arquivo Extensible Application Markup Language (XAML) e um arquivo code-behind. Para o código completo, veja o exemplo Detectando o exemplo de estado de botão do mouse.
Exemplo
O código a seguir cria o interface do usuário, que consiste em um TextBlock dentro de um StackPanel, e anexa os tratadores de eventos para os eventos MouseLeftButtonDown e MouseLeftButtonUp.
<StackPanel Height="100" Width="100"
MouseLeftButtonDown="HandleButtonDown"
MouseLeftButtonUp="HandleButtonDown"
Background="#d08080"
DockPanel.Dock="Left"
>
<TextBlock>Click on Me</TextBlock>
</StackPanel>
O código a seguir cria os manipuladores de eventos MouseLeftButtonUp e MouseLeftButtonDown. Quando o botão do mouse esquerdo é pressionado, as dimensões da TextBlock são aumentadas. Quando o botão esquerdo é solto, as dimensões da TextBlock são restauradas para a altura e largura originais.
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;
}
}
}
Consulte também
Tarefas
Detectando o exemplo de estado de botão do mouse