InkManager.ProcessPointerUpdate(PointerPoint) Метод
Определение
Важно!
Некоторые сведения относятся к предварительной версии продукта, в которую до выпуска могут быть внесены существенные изменения. Майкрософт не предоставляет никаких гарантий, явных или подразумеваемых, относительно приведенных здесь сведений.
Примечание
Для универсальных приложений для Windows, использующих xaml, рекомендуется использовать InkPresenter и элемент управления InkCanvas вместо InkManager.
Обрабатывает свойства положения и состояния, такие как давление и наклон, для указанного указателя от последнего события указателя до текущего события указателя включительно. Вызовите этот метод после ProcessPointerDown и перед ProcessPointerUp.
Важно!
Этот метод не поддерживается в классических приложениях.
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
Параметры
- pointerPoint
- PointerPoint
Указатель ввода, для которого необходимо обработать обновления.
Возвращаемое значение
Если текущий объект InkManipulationMode имеет значение Inking или Selecting, этот метод возвращает значение Point (положение экрана в пространстве рукописного ввода), связанное с последним параметром ProcessPointerUpdate объекта pointerPoint.
Примеры
В следующем примере показан обработчик для события PointerMoved в InkCanvas.
Здесь промежуточные точки (intermediatePoints
), необработанные с момента последнего обновления, обрабатываются InkManager (inkManager
) в вызове 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;
}
}
}
Применяется к
См. также раздел
- Взаимодействие с помощью пера
- Начало работы: поддержка рукописного ввода в приложении UWP
- Пример анализа рукописного ввода (базовый) (C#)
- Пример распознавания рукописного ввода (C#)
- Сохранение и загрузка росчерков пера из файла Ink Serialized Format (ISF)
- Сохранение и загрузка росчерков пера из буфера обмена
- Пример расположения и ориентации панели инструментов рукописного ввода (базовый)
- Пример расположения и ориентации панели инструментов рукописного ввода (динамичный)
- Пример раскраски
- Пример семейных заметок
- Пример рукописного ввода (JavaScript)
- Пример простого рукописного ввода (C#/C++)
- Пример сложного рукописного ввода (C++)
- Пример анализа рукописного ввода