Partilhar via


Como: Redimensionar uma tela usando um polegar

Este exemplo mostra como usar um controle Thumb para redimensionar um controle Canvas.

Exemplo

O controle Thumb fornece a funcionalidade de arrastar que pode ser usada para mover ou redimensionar controles monitorando os eventos DragStarted, DragDelta e DragCompleted do Thumb.

O utilizador inicia uma operação de arrastar pressionando o botão esquerdo do rato quando o ponteiro do rato está parado no controlo Thumb. A operação de arrastar continua enquanto o botão esquerdo do mouse permanecer pressionado. Durante a operação de arrasto, o DragDelta pode ocorrer mais de uma vez. Cada vez que ocorre, a classe DragDeltaEventArgs fornece a mudança de posição que corresponde à mudança na posição do mouse. Quando o usuário libera o botão esquerdo do mouse, a operação de arrastar é concluída. A operação de arrastar fornece apenas novas coordenadas; ele não reposiciona automaticamente o Thumb.

O exemplo a seguir mostra um controle Thumb que é o elemento filho de um controle Canvas. O manipulador de eventos para seu evento DragDelta fornece a lógica para mover o Thumb e redimensionar o Canvas. Os manipuladores para os eventos DragStarted e DragCompleted alteram a cor do Thumb durante uma operação de arrastar. O exemplo a seguir define o Thumb.

<Thumb Name="myThumb" Canvas.Left="80" Canvas.Top="80" Background="Blue" 
      Width="20" Height="20" DragDelta="onDragDelta" 
      DragStarted="onDragStarted" DragCompleted="onDragCompleted"
      />

O exemplo a seguir mostra o manipulador de eventos DragDelta que move o Thumb e redimensiona o Canvas em resposta a um movimento do mouse.

void onDragDelta(object sender, DragDeltaEventArgs e)
{
    //Move the Thumb to the mouse position during the drag operation
    double yadjust = myCanvasStretch.Height + e.VerticalChange;
    double xadjust = myCanvasStretch.Width + e.HorizontalChange;
    if ((xadjust >= 0) && (yadjust >= 0))
    {
        myCanvasStretch.Width = xadjust;
        myCanvasStretch.Height = yadjust;
        Canvas.SetLeft(myThumb, Canvas.GetLeft(myThumb) +
                                e.HorizontalChange);
        Canvas.SetTop(myThumb, Canvas.GetTop(myThumb) +
                                e.VerticalChange);
        changes.Text = "Size: " +
                        myCanvasStretch.Width.ToString() +
                         ", " +
                        myCanvasStretch.Height.ToString();
    }
}

O exemplo a seguir mostra o manipulador de eventos DragStarted.

void onDragStarted(object sender, DragStartedEventArgs e)
{
    myThumb.Background = Brushes.Orange;
}
Private Sub onDragStarted(ByVal sender As Object, ByVal e As DragStartedEventArgs)
    myThumb.Background = Brushes.Orange
End Sub

O exemplo a seguir mostra o manipulador de eventos DragCompleted.

void onDragCompleted(object sender, DragCompletedEventArgs e)
{
    myThumb.Background = Brushes.Blue;
}
Private Sub onDragCompleted(ByVal sender As Object, _
                  ByVal e As DragCompletedEventArgs)
    myThumb.Background = Brushes.Blue
End Sub

Para obter o exemplo completo, consulte Exemplo de funcionalidade de arrastar polegar.

Ver também