Compartilhar via


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

Conceitos

Input Overview