Compartir a través de


InkManager.ProcessPointerUpdate(PointerPoint) Método

Definición

Nota

Para la aplicación universal de Windows con lenguaje de marcado de aplicación extensible (XAML), se recomienda usar InkPresenter y el control InkCanvas en lugar de InkManager.

Procesa las propiedades de posición y estado, como presión e inclinación, para el puntero especificado, desde el último evento de puntero hasta e incluido el evento de puntero actual. Llame a este método después de ProcessPointerDown y antes de ProcessPointerUp.

Importante

Este método no se admite en aplicaciones de escritorio.

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

Parámetros

pointerPoint
PointerPoint

Puntero de entrada para el que se van a procesar las actualizaciones.

Devoluciones

Object

Platform::Object

IInspectable

Cuando el inkManipulationMode actual es Entrada manuscrita o Selección, este método devuelve el punto (posición de pantalla en el espacio de entrada de lápiz) asociado al último ProcessPointerUpdate de pointerPoint.

Ejemplos

En el ejemplo siguiente se muestra un controlador para un evento PointerMoved en un inkCanvas.

Aquí, el InkManager () procesa los puntos intermedios (intermediatePoints) sin procesar desde la última actualización (inkManager) en la llamada 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;
        }
    }
}

Se aplica a

Consulte también