Compartilhar via


ManipulationDeltaEventArgs Classe

Definição

Fornece dados para o evento ManipulationDelta.

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 a seguir mostra um manipulador de eventos para o ManipulationDelta evento. O exemplo usa a DeltaManipulation propriedade para mover, redimensionar e girar um Rectangle. O exemplo também verifica se o ManipulationDelta evento ocorreu durante a inércia e se o retângulo está tocando na borda de uma janela. Se esses casos forem verdadeiros, o aplicativo interromperá a manipulação para impedir que o retângulo deixe a área visível do aplicativo. Este exemplo faz parte de um exemplo maior em Passo a passo: criando seu primeiro aplicativo touch.

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

Comentários

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 o total de alterações que ocorreram para a manipulação atual. Você usa uma dessas propriedades para transformar o objeto manipulado.

Você pode encerrar uma manipulação chamando o Complete método ou forçando a manipulação para a inércia chamando o StartInertia método.

Propriedades

Nome Description
CumulativeManipulation

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

DeltaManipulation

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

Device

Obtém o dispositivo de entrada que iniciou esse evento.

(Herdado de InputEventArgs)
Handled

Obtém ou define um valor que indica o estado atual do tratamento de eventos para um evento roteado à medida que 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 contêiner que define as coordenadas para a manipulação.

ManipulationOrigin

Obtém o ponto do qual a manipulação se originou.

Manipulators

Obtém uma coleção de objetos que representa os contatos de toque para a manipulação.

OriginalSource

Obtém a fonte de relatório original, conforme determinado pelo teste de clique puro, antes de qualquer possível Source ajuste por uma classe pai.

(Herdado de RoutedEventArgs)
RoutedEvent

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

(Herdado de RoutedEventArgs)
Source

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

(Herdado de RoutedEventArgs)
Timestamp

Obtém a hora em que esse evento ocorreu.

(Herdado de InputEventArgs)
Velocities

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

Métodos

Nome Description
Cancel()

Cancela a manipulação.

Complete()

Conclui a manipulação sem inércia.

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
InvokeEventHandler(Delegate, Object)

Invoca manipuladores de eventos de uma maneira específica do tipo, o que pode aumentar a eficiência do sistema de eventos.

(Herdado de InputEventArgs)
MemberwiseClone()

Cria uma cópia superficial do Objectatual.

(Herdado de Object)
OnSetSource(Object)

Quando substituído em uma classe derivada, fornece um ponto de entrada de retorno de chamada de notificação sempre que o Source valor da propriedade de uma instância é alterado.

(Herdado de RoutedEventArgs)
ReportBoundaryFeedback(ManipulationDelta)

Especifica que a manipulação ultrapassou determinados limites.

StartInertia()

Inicia a inércia na manipulação ignorando os movimentos de contato subsequentes e elevando o ManipulationInertiaStarting evento.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Aplica-se a