Freigeben über


InkManager.ProcessPointerUpdate(PointerPoint) Methode

Definition

Hinweis

Für universelle Windows-Apps mit XAML (Extensible Application Markup Language) wird empfohlen , InkPresenter und das InkCanvas-Steuerelement anstelle von InkManager zu verwenden.

Verarbeitet Positions- und Zustandseigenschaften wie Druck und Neigung für den angegebenen Zeiger vom letzten Zeigerereignis bis hin zum aktuellen Zeigerereignis. Rufen Sie diese Methode nach ProcessPointerDown und vor ProcessPointerUp auf.

Wichtig

Diese Methode wird in Desktop-Apps nicht unterstützt.

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

Parameter

pointerPoint
PointerPoint

Der Eingabezeiger, für den Updates verarbeitet werden sollen.

Gibt zurück

Object

Platform::Object

IInspectable

Wenn der aktuelle InkManipulationModeFreihand oder Auswählen ist, gibt diese Methode den Point (Bildschirmposition im Freihandbereich) zurück, der dem letzten ProcessPointerUpdate von pointerPoint zugeordnet ist.

Beispiele

Im folgenden Beispiel wird ein Handler für ein PointerMoved-Ereignis für ein InkCanvas-Ereignis veranschaulicht.

Hier werden die seit der letzten Aktualisierung nicht verarbeiteten Zwischenpunkte (intermediatePoints) vom InkManager (inkManager) im ProcessPointerUpdate-Aufruf verarbeitet.

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

Gilt für:

Weitere Informationen