示例#1
0
        /*private float beginScale = 1;
         * private void resetScale()
         * {
         *  matrix = SKMatrix.Identity;
         *  SKMatrix.PostConcat(ref matrix, SKMatrix.CreateScale(beginScale, beginScale, canvasView.CanvasSize.Width, canvasView.CanvasSize.Height));
         * }*/

        private void bitmapInit()
        {
            this.renderingMode = (RenderingMode)Preferences.Get("RenderingMode", 2);

            if (renderingMode == RenderingMode.DoubleBuffering)
            {
                this.doubleBufferingBitmap = new SKBitmap((int)this.canvasView.CanvasSize.Width, (int)this.canvasView.CanvasSize.Height);
                this.bitmapCanvas          = new SKCanvas(doubleBufferingBitmap);
            }
            else if (renderingMode == RenderingMode.FullDoubleBuffering)
            {
                try
                {
                    this.bitmap = new SKBitmap(LongUzorGraphic.GetResultContentWidth() > 7000? 7000 : LongUzorGraphic.GetResultContentWidth(),
                                               LongUzorGraphic.GetResultContentHeight() > 13000? 13000: LongUzorGraphic.GetResultContentHeight());
                }
                catch (System.Exception e)
                {
                    this.bitmap = new SKBitmap(3000, 4000);
                    var mb = new MessageBox(e.Message + "    " + AppResource.SwitchRenderingAlert);
                    mb.OkButton_Clicked += hideAlert;
                    this.mainGrid.Children.Add(mb);
                    this.renderingMode = RenderingMode.Low;
                }

                this.bitmapCanvas = new SKCanvas(bitmap);
            }
            else
            {
                return;
            }

            this.updateBitmap();
        }