private async void OnStrokesCollected(object sender, XInkStrokesCollectedEventArgs e) { var strokes = this.InkCanvas.GetInkCanvasView().InkPresenter.StrokeContainer.GetStrokes(); App.GetSketchData().InkStrokes = strokes; var width = this.InkCanvas.CanvasSize.Width; var height = this.InkCanvas.CanvasSize.Height; var webView = FullPreview;//IsSpanned ? FullPreview : SplitPreview; await UpdateWebViewAsync().ConfigureAwait(true); var inkPoints = e.Strokes[e.Strokes.Count - 1].GetInkPoints(); if (!inkPoints.Any()) { return; } var position = inkPoints[inkPoints.Count - 1].Position; var alpha = -(position.X / width) * (2 * Math.PI); var beta = Math.PI * (height - position.Y) / height; webView.SetPosition(alpha, beta); await SaveSketchAsync().ConfigureAwait(true); var undoItem = App.Container.Resolve <IAddStrokesUndoItem>(); undoItem.Container = App.GetSketchData(); undoItem.Strokes = e.Strokes.ToList(); _viewModel.UndoManager.Add(undoItem); }
private void OnRightInkCanvasViewStrokesCollected(Xamarin.Forms.Inking.Interfaces.IInkPresenter sender, XInkStrokesCollectedEventArgs args) { RightInkCanvasView.InvalidateCanvas(false, true); }