protected override void OnElementChanged(ElementChangedEventArgs <View> e) { base.OnElementChanged(e); if (e.NewElement != null) { if (e.NewElement is PencilKitView pkView) { var bounds = e.NewElement.Bounds; //Provides the drawable region var pkPencilView = new PKCanvasView(); pkPencilView.Frame = new CoreGraphics.CGRect(bounds.X, bounds.Y, bounds.Width, bounds.Height); //PKDrawing - Data Model. Captures all the beautiful strokes //PKToolPicker - The main tool kit //PKTools - Provides inks pkPencilView.Tool = new PKInkingTool(PKInkType.Pen, UIKit.UIColor.Blue, 40); SetNativeControl(pkPencilView); } } }
public override void ViewWillAppear(bool animated) { base.ViewWillAppear(animated); var canvas = new PKCanvasView(); var window = GetWindow(); var tool = PKToolPicker.GetSharedToolPicker(window); tool.SetVisible(true, canvas); tool.AddObserver(canvas); canvas.BecomeFirstResponder(); View.FillWith(canvas); }
public override void DrawingDidChange(PKCanvasView canvasView) { if (!(canvasView is PKEventingCanvasView pk)) { return; } var rect = new CGRect(new CGPoint(0, 0), canvasView.Frame.Size); var img = canvasView.Drawing.GetImage(rect, 1); if (img != null && !pk.SuppressChanges) { pk.OnImage?.Invoke(img); } }