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
        private void Canvas_PaintSurface(object sender, SkiaSharp.Views.UWP.SKPaintSurfaceEventArgs e)
        {
            e.Surface.Canvas.Clear();

            // Handle the text color
            byte r = 0, g = 0, b = 0, a = 255;

            if (Foreground is SolidColorBrush)
            {
                var fore = (Foreground as SolidColorBrush).Color;
                r = fore.R;
                g = fore.G;
                b = fore.B;
                a = fore.A;
            }
            SkiaSharp.SKColor textColor = new SkiaSharp.SKColor(r, g, b, a);

            // Handle the background color
            r = 255; g = 255; b = 255; a = 255;
            if (Background is SolidColorBrush)
            {
                var back = (Background as SolidColorBrush).Color;
                r = back.R;
                g = back.G;
                b = back.B;
                a = back.A;
            }
            SkiaSharp.SKColor backColor = new SkiaSharp.SKColor(r, g, b, a);
            e.Surface.Canvas.DrawColor(backColor);

            var painter = new CSharpMath.SkiaSharp.MathPainter
            {
                LaTeX     = LaTeXString,
                FontSize  = (float)FontSize,
                TextColor = textColor,
            };

            painter.Draw(e.Surface.Canvas);
        }