Bagikan melalui


InkManager.ProcessPointerUpdate(PointerPoint) Metode

Definisi

Catatan

Untuk aplikasi Universal Windows menggunakan Extensible Application Markup Language (XAML), sebaiknya gunakan InkPresenter dan kontrol InkCanvas alih-alih InkManager.

Memproses properti posisi dan status, seperti tekanan dan kembung, untuk penunjuk yang ditentukan, dari peristiwa penunjuk terakhir hingga dan termasuk peristiwa penunjuk saat ini. Panggil metode ini setelah ProcessPointerDown dan sebelum ProcessPointerUp.

Penting

Metode ini tidak didukung di aplikasi desktop.

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

Parameter

pointerPoint
PointerPoint

Penunjuk input yang pembaruannya akan diproses.

Mengembalikan

Object

Platform::Object

IInspectable

Ketika InkManipulationMode saat ini adalah Penintaan atau Pemilihan, metode ini mengembalikan Titik (posisi layar dalam ruang tinta) yang terkait dengan ProcessPointerUpdate terakhir pointerPoint.

Contoh

Contoh berikut menunjukkan handler untuk peristiwa PointerMoved pada InkCanvas.

Di sini, titik perantara (intermediatePoints) yang tidak diproses sejak pembaruan terakhir diproses oleh InkManager (inkManager) dalam panggilan 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;
        }
    }
}

Berlaku untuk

Lihat juga