Example #1
0
        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);
            };
        }
Example #2
0
        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 }
            };
        }