InkManager.ProcessPointerUpdate(PointerPoint) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
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
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
- Interacciones de pluma y lápiz
- Introducción: Compatibilidad con la entrada de lápiz en la aplicación para UWP
- Ejemplo de análisis de lápiz (básico) (C#)
- Ejemplo de reconocimiento de escritura a mano de lápiz (C#)
- Guardar y cargar trazos de lápiz desde un archivo de formato serializado de lápiz (ISF)
- Guardar y cargar trazos de lápiz desde el Portapapeles
- Ejemplo de orientación y ubicación de la barra de herramientas de lápiz (básico)
- Muestra de orientación y ubicación de la barra de herramientas de lápiz (dinámica)
- Muestra de libro para colorear
- Muestra de notas familiares
- Ejemplo de entrada manuscrita (JavaScript)
- Ejemplo de entrada manuscrita simple (C#/C++)
- Ejemplo complejo de entrada manuscrita (C++)
- Ejemplo de análisis de entrada de lápiz