ManipulationDeltaEventArgs Classe
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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
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) |