ManipulationDeltaEventArgs Classe

Definição

Fornece dados para o ManipulationDelta evento.

public ref class ManipulationDeltaEventArgs sealed : System::Windows::Input::InputEventArgs
public sealed class ManipulationDeltaEventArgs : System.Windows.Input.InputEventArgs
type ManipulationDeltaEventArgs = class
    inherit InputEventArgs
Public NotInheritable Class ManipulationDeltaEventArgs
Inherits InputEventArgs
Herança
ManipulationDeltaEventArgs

Exemplos

O exemplo seguinte mostra um gestor de eventos para o ManipulationDelta evento. O exemplo usa a DeltaManipulation propriedade para mover, redimensionar e rodar um Rectangle. O exemplo verifica também se o ManipulationDelta evento ocorreu durante a inércia e se o retângulo está a tocar na borda de uma janela. Se esses casos forem verdadeiros, a aplicação interrompe a manipulação para impedir que o retângulo saia da área visível da aplicação. Este exemplo faz parte de um exemplo mais amplo em Walkthrough: Criar a Sua Aplicação de Primeiro Toque.

void Window_ManipulationDelta(object sender, ManipulationDeltaEventArgs e)
{
    
    // Get the Rectangle and its RenderTransform matrix.
    Rectangle rectToMove = e.OriginalSource as Rectangle;
    Matrix rectsMatrix = ((MatrixTransform)rectToMove.RenderTransform).Matrix;

    // Rotate the Rectangle.
    rectsMatrix.RotateAt(e.DeltaManipulation.Rotation, 
                         e.ManipulationOrigin.X, 
                         e.ManipulationOrigin.Y);

    // Resize the Rectangle.  Keep it square 
    // so use only the X value of Scale.
    rectsMatrix.ScaleAt(e.DeltaManipulation.Scale.X, 
                        e.DeltaManipulation.Scale.X, 
                        e.ManipulationOrigin.X,
                        e.ManipulationOrigin.Y);

    // Move the Rectangle.
    rectsMatrix.Translate(e.DeltaManipulation.Translation.X,
                          e.DeltaManipulation.Translation.Y);

    // Apply the changes to the Rectangle.
    rectToMove.RenderTransform = new MatrixTransform(rectsMatrix);

    Rect containingRect =
        new Rect(((FrameworkElement)e.ManipulationContainer).RenderSize);

    Rect shapeBounds =
        rectToMove.RenderTransform.TransformBounds(
            new Rect(rectToMove.RenderSize));

    // Check if the rectangle is completely in the window.
    // If it is not and intertia is occuring, stop the manipulation.
    if (e.IsInertial && !containingRect.Contains(shapeBounds))
    {
        e.Complete();
    }

    e.Handled = true;
}
Private Sub Window_ManipulationDelta(ByVal sender As Object, ByVal e As ManipulationDeltaEventArgs)

    ' Get the Rectangle and its RenderTransform matrix.
    Dim rectToMove As Rectangle = e.OriginalSource
    Dim rectTransform As MatrixTransform = rectToMove.RenderTransform
    Dim rectsMatrix As Matrix = rectTransform.Matrix


    ' Rotate the shape
    rectsMatrix.RotateAt(e.DeltaManipulation.Rotation,
                         e.ManipulationOrigin.X,
                         e.ManipulationOrigin.Y)

    ' Resize the Rectangle. Keep it square 
    ' so use only the X value of Scale.
    rectsMatrix.ScaleAt(e.DeltaManipulation.Scale.X,
                        e.DeltaManipulation.Scale.X,
                        e.ManipulationOrigin.X,
                        e.ManipulationOrigin.Y)

    'move the center
    rectsMatrix.Translate(e.DeltaManipulation.Translation.X,
                          e.DeltaManipulation.Translation.Y)

    ' Apply the changes to the Rectangle.
    rectTransform = New MatrixTransform(rectsMatrix)
    rectToMove.RenderTransform = rectTransform

    Dim container As FrameworkElement = e.ManipulationContainer
    Dim containingRect As New Rect(container.RenderSize)

    Dim shapeBounds As Rect = rectTransform.TransformBounds(
                                New Rect(rectToMove.RenderSize))

    ' Check if the rectangle is completely in the window.
    ' If it is not and intertia is occuring, stop the manipulation.
    If e.IsInertial AndAlso Not containingRect.Contains(shapeBounds) Then
        e.Complete()
    End If

    e.Handled = True
End Sub

Observações

A ManipulationDeltaEventArgs classe contém dados sobre alterações na posição de uma manipulação. A DeltaManipulation propriedade contém as alterações que ocorreram desde o último ManipulationDelta evento. A CumulativeManipulation propriedade contém as alterações totais que ocorreram para a manipulação atual. Usas uma dessas propriedades para transformar o objeto manipulado.

Podes terminar uma manipulação chamando o Complete método ou forçar a manipulação à inércia ao chamar o StartInertia método.

Propriedades

Name Description
CumulativeManipulation

Obtém as alterações acumuladas da manipulação atual.

DeltaManipulation

Recebe as mudanças mais recentes da manipulação atual.

Device

Recebe o dispositivo de entrada que iniciou este evento.

(Herdado de InputEventArgs)
Handled

Recebe ou define um valor que indica o estado atual do tratamento do evento para um evento encaminhado enquanto percorre a rota.

(Herdado de RoutedEventArgs)
IsInertial

Obtém um valor que indica se o ManipulationDelta evento ocorre durante a inércia.

ManipulationContainer

Obtém o contentor que define as coordenadas para a manipulação.

ManipulationOrigin

Percebe o ponto de onde a manipulação se originou.

Manipulators

Obtém uma coleção de objetos que representa os contactos táteis para a manipulação.

OriginalSource

Obtém a fonte original de reporte determinada por testes puros de sucesso, antes de qualquer possível Source ajuste por parte de uma turma-mãe.

(Herdado de RoutedEventArgs)
RoutedEvent

Obtém ou define o associado RoutedEvent a esta RoutedEventArgs instância.

(Herdado de RoutedEventArgs)
Source

Obtém ou define uma referência ao objeto que originou o evento.

(Herdado de RoutedEventArgs)
Timestamp

Obtém a hora em que este evento aconteceu.

(Herdado de InputEventArgs)
Velocities

Obtém as taxas das alterações mais recentes à manipulação.

Métodos

Name Description
Cancel()

Cancela a manipulação.

Complete()

Completa a manipulação sem inércia.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como função de hash predefinida.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
InvokeEventHandler(Delegate, Object)

Invoca os gestores de eventos de forma específica para cada tipo, o que pode aumentar a eficiência do sistema de eventos.

(Herdado de InputEventArgs)
MemberwiseClone()

Cria uma cópia superficial do atual Object.

(Herdado de Object)
OnSetSource(Object)

Quando sobrescrito numa classe derivada, fornece um ponto de entrada de callback por notificação sempre que o valor da Source propriedade de uma instância muda.

(Herdado de RoutedEventArgs)
ReportBoundaryFeedback(ManipulationDelta)

Especifica que a manipulação ultrapassou certos limites.

StartInertia()

Inicia a inércia na manipulação ao ignorar movimentos de contacto subsequentes e elevar o ManipulationInertiaStarting evento.

ToString()

Devolve uma cadeia que representa o objeto atual.

(Herdado de Object)

Aplica-se a