Windows Dev Center

Il presente articolo è stato tradotto manualmente. Passare il puntatore sulle frasi nell'articolo per visualizzare il testo originale.
Traduzione
Originale
Informazioni
L'argomento richiesto è visualizzato di seguito, ma non è incluso in questa libreria.

Evento UIElement.ManipulationDelta

Si verifica quando il dispositivo di input cambia posizione durante una manipolazione .

Spazio dei nomi:  System.Windows
Assembly:  PresentationCore (in PresentationCore.dll)
XMLNS per XAML: http://schemas.microsoft.com/winfx/2006/xaml/presentation, http://schemas.microsoft.com/netfx/2007/xaml/presentation

public event EventHandler<ManipulationDeltaEventArgs> ManipulationDelta
<object ManipulationDelta="EventHandler<ManipulationDeltaEventArgs>" .../>

Campo dell'identificatore

ManipulationDeltaEvent

Strategia di routing

Bubbling

delegate

EventHandler<TEventArgs> di tipo ManipulationDeltaEventArgs.

Si verifica l'evento ManipulationDelta più volte quando l'utente trascina le dita sullo schermo durante una modifica e nuovamente quando si verifica un'inerzia. È possibile utilizzare la proprietà IsInertial per controllare se l'evento si sta verificando durante l'inerzia.

L'elemento sul quale si verifica l'evento ManipulationDelta non viene interessato in alcun modo dal verificarsi dell'evento. È necessario fornire la logica all'elemento che deve essere modificato. Le proprietà CumulativeManipulation e DeltaManipulation, che sono di tipo ManipulationDelta, contengono dati sul modo in cui cambia la posizione delle modifiche e su come venga interpretata come spostamento, ridimensionamento o rotazione di un oggetto. Si applicano quelle informazioni all'elemento che deve essere modificato.

Per ulteriori informazioni sulle modifiche, vedere Cenni preliminari sull’input. Per un esempio di un'applicazione che risponde a manipolazioni, vedere Procedura dettagliata: creazione della prima applicazione a tocco.

Nell'esempio riportato di seguito viene illustrato un gestore per l'evento ManipulationDelta. Nell'esempio viene utilizzata la proprietà DeltaManipulation per spostare, ridimensionare e ruotare un oggetto Rectangle. Nell'esempio viene anche controllato se l'evento ManipulationDelta si è verificato durante l'inerzia e se il rettangolo sta toccando il bordo di una finestra. Se quei casi sono veri, l'applicazione arresta la modifica per evitare che il rettangolo esca dall'area visibile dell'applicazione. Questo esempio fa parte di un esempio più esaustivo in Procedura dettagliata: creazione della prima applicazione a tocco.


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;
}


.NET Framework

Supportato in: 4

.NET Framework Client Profile

Supportato in: 4

Windows 7, Windows Vista SP1 o versione successiva, Windows XP SP3, Windows Server 2008 (componenti di base del server non supportati), Windows Server 2008 R2 (componenti di base del server supportati con SP1 o versione successiva), Windows Server 2003 SP2

.NET Framework non supporta tutte le versioni di ciascuna piattaforma. Per un elenco delle versioni supportate, vedere Requisiti di sistema di .NET Framework.

Aggiunte alla community

Mostra:
© 2015 Microsoft