Compartilhar via


ManipulationDeltaEventArgs Classe

Definição

Fornece dados para o evento de 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 a 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 inércia chamando o StartInertia método .

Propriedades

CumulativeManipulation

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

DeltaManipulation

Obtém as alterações mais recentes da manipulação de 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 de manipulação de eventos para um evento roteado enquanto ele trafega na rota.

(Herdado de RoutedEventArgs)
IsInertial

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

ManipulationContainer

Obtém o contêiner que define as coordenadas para a manipulação.

ManipulationOrigin

Obtém o ponto que deu origem à manipulação.

Manipulators

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

OriginalSource

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

(Herdado de RoutedEventArgs)
RoutedEvent

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

(Herdado de RoutedEventArgs)
Source

Obtém ou define uma referência ao objeto que ativou 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 à manipulação.

Métodos

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 em uma forma específica de tipo, o que pode aumentar a eficiência do sistema de eventos.

(Herdado de InputEventArgs)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(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 valor da propriedade Source de uma instância muda.

(Herdado de RoutedEventArgs)
ReportBoundaryFeedback(ManipulationDelta)

Especifica que a manipulação foi além de determinados limites.

StartInertia()

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

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Aplica-se a