Partager via


InkManager.ProcessPointerUpdate(PointerPoint) Méthode

Définition

Notes

Pour l’application Windows universelle utilisant XAML (Extensible Application Markup Language), nous vous recommandons d’utiliser InkPresenter et le contrôle InkCanvas au lieu d’InkManager.

Traite les propriétés de position et d’état, telles que la pression et l’inclinaison, pour le pointeur spécifié, à partir du dernier événement de pointeur jusqu’à et y compris l’événement de pointeur actuel. Appelez cette méthode après ProcessPointerDown et avant ProcessPointerUp.

Important

Cette méthode n’est pas prise en charge dans les applications de bureau.

public:
 virtual Platform::Object ^ ProcessPointerUpdate(PointerPoint ^ pointerPoint) = ProcessPointerUpdate;
IInspectable ProcessPointerUpdate(PointerPoint const& pointerPoint);
public object ProcessPointerUpdate(PointerPoint pointerPoint);
function processPointerUpdate(pointerPoint)
Public Function ProcessPointerUpdate (pointerPoint As PointerPoint) As Object

Paramètres

pointerPoint
PointerPoint

Pointeur d’entrée pour lequel les mises à jour doivent être traitées.

Retours

Object

Platform::Object

IInspectable

Lorsque le InkManipulationMode actuel est Entrée manuscrite ou Sélection, cette méthode retourne le Point (position d’écran dans l’espace manuscrit) associé à la dernière mise à jour ProcessPointerUpdate de pointerPoint.

Exemples

L’exemple suivant illustre un gestionnaire pour un événement PointerMoved sur un InkCanvas.

Ici, les points intermédiaires (intermediatePoints) non traités depuis la dernière mise à jour sont traités par InkManager (inkManager) dans l’appel ProcessPointerUpdate.

void InkingArea_PointerMoved(object sender, Windows.UI.Xaml.Input.PointerRoutedEventArgs e)
{
    var pointerPoint = e.GetCurrentPoint(InkingArea);

    if (pointerId == (int)pointerPoint.PointerId)
    {
        switch (inkManager.Mode)
        {
            case Windows.UI.Input.Inking.InkManipulationMode.Erasing:
                // Check if something has been erased.
                // In erase mode, ProcessPointerUpdate returns an 
                // `invalidateRect` (if it is not degenerate something 
                // has been erased). In erase mode we don't bother processing 
                // intermediate points.
                var invalidateRect = 
                    (Windows.Foundation.Rect)inkManager.ProcessPointerUpdate(
                        e.GetCurrentPoint(InkingArea));
                if (invalidateRect.Height != 0 && invalidateRect.Width != 0)
                {
                    // We don't know what has been erased so we clear the render
                    // and add back all the ink saved in the ink manager.
                    renderer.Clear();
                    renderer.AddInk(inkManager.GetStrokes());
                }
                break;

            case Windows.UI.Input.Inking.InkManipulationMode.Inking:
            case Windows.UI.Input.Inking.InkManipulationMode.Selecting:
                // Process intermediate points.
                var intermediatePoints = e.GetIntermediatePoints(InkingArea);
                for (int i = intermediatePoints.Count - 1; i >= 0; i--)
                {
                    inkManager.ProcessPointerUpdate(intermediatePoints[i]);
                }

                // Live rendering.
                renderer.UpdateLiveRender(pointerPoint);
                break;
        }
    }
}

S’applique à

Voir aussi