private void ReviewAllEvent() { if (borderTouch) { BorderTouch?.Invoke(); borderTouch = false; } }
private void ProcessStylusEvent(StylusEventArgs e, [CallerMemberName] string callerName = null) { DebugMessage($"{callerName}"); if (strokeMouse != null) { return; } if (callerName == nameof(HandleEventSignaturePadCanvasPreviewStylusDown)) { if (lStroke?.Count == 0) { RecordingStarted?.Invoke(); } strokeStylus = new InkStroke(InkSource.Stylus); foreach (var sp in e.GetStylusPoints(canvasSignaturePad)) { var ip = new InkPoint(sp.ToPoint(), sp.PressureFactor, null, GetCurrentTimestamp()); DebugInkPoint(callerName, strokeStylus.Points.Count, ip); if (ip.Position.X < 0 || ip.Position.X > Width || ip.Position.Y < 0 || ip.Position.Y > Height) { borderTouch = true; return; } strokeStylus.Points.Add(ip); } } else if (strokeStylus != null) { var tsNow = GetCurrentTimestamp(); var sps = e.GetStylusPoints(canvasSignaturePad); if (sps.Count > 1) { var tsLast = strokeStylus.Points.Last().Timestamp; for (var idxSp = 0; idxSp < sps.Count; idxSp++) { var sp = sps[idxSp]; var tsPointApprox = TimeSpan.FromTicks((tsNow.Ticks - tsLast.Ticks) * (idxSp + 1) / sps.Count + tsLast.Ticks); var ip = new InkPoint(sp.ToPoint(), sp.PressureFactor, null, tsPointApprox); DebugInkPoint(callerName, strokeStylus.Points.Count, ip); if (ip.Position.X < 0 || ip.Position.X > Width || ip.Position.Y < 0 || ip.Position.Y > Height) { borderTouch = true; return; } strokeStylus.Points.Add(ip); } } else if (sps.Count > 0) { var ip = new InkPoint(sps[0].ToPoint(), sps[0].PressureFactor, null, tsNow); DebugInkPoint(callerName, strokeStylus.Points.Count, ip); if (ip.Position.X < 0 || ip.Position.X > Width || ip.Position.Y < 0 || ip.Position.Y > Height) { BorderTouch?.Invoke(); return; } strokeStylus.Points.Add(ip); } if (callerName == nameof(HandleEventSignaturePadCanvasPreviewStylusUp)) { DebugMessage($"StrokeCaptured: #{lStroke.Count} Src = {strokeStylus.Source}, Count = {strokeStylus.Points.Count} @ {strokeStylus.Timestamp}"); lStroke.Add(strokeStylus); strokeStylus = null; } } }