InkManager.ProcessPointerUpdate(PointerPoint) 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
참고
XAML(Extensible Application Markup Language)을 사용하는 유니버설 Windows 앱의 경우 InkManager 대신 InkPresenter 및 InkCanvas 컨트롤을 사용하는 것이 좋습니다.
지정된 포인터의 위치 및 상태 속성(예: 압력 및 기울기)을 마지막 포인터 이벤트에서 현재 포인터 이벤트까지 처리합니다. 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가 수동 입력 또는 선택인 경우 이 메서드는 pointerPoint의 마지막 ProcessPointerUpdate와 연결된 점(잉크 공간의 화면 위치)을 반환합니다.
예제
다음 예제에서는 InkCanvas에서 PointerMoved 이벤트에 대한 처리기를 보여 줍니다.
여기서 마지막 업데이트 이후 처리되지 않은 중간 지점(intermediatePoints
)은 ProcessPointerUpdate 호출의 InkManager (inkManager
)에 의해 처리됩니다.
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;
}
}
}