示例#1
0
        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);
        }
示例#2
0
 private void OnRightInkCanvasViewStrokesCollected(Xamarin.Forms.Inking.Interfaces.IInkPresenter sender, XInkStrokesCollectedEventArgs args)
 {
     RightInkCanvasView.InvalidateCanvas(false, true);
 }