ManipulationDeltaEventArgs Classe
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
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
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) |