InkManager.ProcessPointerUpdate(PointerPoint) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
Observação
Para o aplicativo Universal do Windows usando XAML (Extensible Application Markup Language), recomendamos usar InkPresenter e o controle InkCanvas em vez de InkManager.
Processa propriedades de posição e estado, como pressão e inclinação, para o ponteiro especificado, do último evento de ponteiro até e incluindo o evento de ponteiro atual. Chame esse método após ProcessPointerDown e antes de ProcessPointerUp.
Importante
Não há suporte para esse método em aplicativos da área de trabalho.
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
O ponteiro de entrada para o qual as atualizações devem ser processadas.
Retornos
Quando InkManipulationMode atual é Inking ou Selecting, esse método retorna o Point (posição da tela no espaço à tinta) associado ao último ProcessPointerUpdate do pointerPoint.
Exemplos
O exemplo a seguir demonstra um manipulador para um evento PointerMoved em um InkCanvas.
Aqui, os pontos intermediários (intermediatePoints
) não processados desde a última atualização são processados pelo InkManager (inkManager
) na chamada 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;
}
}
}
Aplica-se a
Confira também
- Interações por caneta
- Introdução: oferecer suporte à tinta em seu aplicativo UWP
- Exemplo de análise de tinta (básico) (C#)
- Exemplo de reconhecimento de manuscrito à tinta (C#)
- Salvar e carregar traços de tinta de um arquivo ISF (Ink Serialized Format)
- Salvar e carregar traços de tinta da área de transferência
- Exemplo de localização e orientação da barra de ferramentas de tinta (básico)
- Exemplo de localização e orientação da barra de ferramentas de tinta (dinâmico)
- Exemplo de livro de colorir
- Exemplo de anotações da família
- Exemplo de escrita à tinta (JavaScript)
- Exemplo de escrita à tinta simples (C#/C++)
- Exemplo de escrita à tinta complexa (C++)
- Exemplo de análise de tinta