public MainPage() { InitializeComponent(); global::SkiaSharp.Views.Forms.SKCanvasView canvasView = canvas; CSharpMath.Forms.MathKeyboard keyboard = b; var painter = new CSharpMath.SkiaSharp.MathPainter { /*set all properties aside from LocalTypefaces, FontSize, LineStyle, * MathList, LaTeX and Source (these are ignored)*/ }; keyboard.RedrawRequested += (sender, e) => canvasView.InvalidateSurface(); canvasView.PaintSurface += (sender, e) => { e.Surface.Canvas.Clear(); //for any DrawDisplay overload, arguments after canvas are the same as Draw CSharpMath.SkiaSharp.MathPainter.DrawDisplay(painter, keyboard.Display, e.Surface.Canvas); keyboard.DrawCaret(e.Surface.Canvas, CSharpMath.Rendering.CaretShape.IBeam); }; }
public EditorPage() { InitializeComponent(); var view = new global::SkiaSharp.Views.Forms.SKCanvasView { WidthRequest = 320, HeightRequest = 225 }; var painter = new SkiaSharp.MathPainter { TextColor = global::SkiaSharp.SKColors.Black }; var keyboard = new MathKeyboard(); keyboard.RedrawRequested += (_, __) => view.InvalidateSurface(); view.PaintSurface += (sender, e) => { e.Surface.Canvas.Clear(); SkiaSharp.MathPainter.DrawDisplay(painter, keyboard.Display, e.Surface.Canvas); keyboard.DrawCaret(e.Surface.Canvas, Rendering.CaretShape.UpArrow); }; Content = new StackLayout { Children = { view, keyboard } }; }