コード例 #1
0
ファイル: LongUzorView.xaml.cs プロジェクト: Ljachovsky/Uzor
        private void onCanvasViewPaintSurface(object sender, SkiaSharp.Views.Forms.SKPaintSurfaceEventArgs e)
        {
            if (doubleBufferingBitmap == null && bitmap == null)
            {
                this.bitmapInit();
            }

            switch (renderingMode)
            {
            case RenderingMode.Low:
                e.Surface.Canvas.SetMatrix(matrix);
                LongUzorGraphic.Draw(e.Surface.Canvas, canvasView);
                break;

            case RenderingMode.DoubleBuffering:
                e.Surface.Canvas.SetMatrix(bitmapMatrix);
                e.Surface.Canvas.Clear();
                e.Surface.Canvas.DrawBitmap(doubleBufferingBitmap, 0, 0);
                break;

            case RenderingMode.FullDoubleBuffering:
                e.Surface.Canvas.SetMatrix(matrix);
                e.Surface.Canvas.Clear(this.Data.BackColor.ToSKColor());
                e.Surface.Canvas.DrawBitmap(bitmap, canvasView.CanvasSize.Width / 2 - bitmap.Width / 2, canvasView.CanvasSize.Height / 2 - bitmap.Height / 2);
                break;

            default:
                break;
            }

            // TODO: draw zoom-indicator in top angle with specifical parent-view
        }
コード例 #2
0
ファイル: LongUzorView.xaml.cs プロジェクト: Ljachovsky/Uzor
 private void updateBitmap()
 {
     if (renderingMode == RenderingMode.DoubleBuffering)
     {
         bitmapCanvas.SetMatrix(matrix);
         LongUzorGraphic.Draw(bitmapCanvas, canvasView);
         bitmapMatrix = SKMatrix.MakeIdentity();
     }
     else if (renderingMode == RenderingMode.FullDoubleBuffering)
     {
         bitmapCanvas.ResetMatrix();
         LongUzorGraphic.Draw(bitmapCanvas, bitmap.Width, bitmap.Height);
     }
 }