天天看點

在WPF下快速生成線的方法

原文: 在WPF下快速生成線的方法 如果線較多時,在畫布中用Path或Line生成時會比較慢。用DrawingVisual可以快速生成,這個在之前我的部落格中已經提到。但在類庫形式下生成的無法看到,儲存成Image後再加入圖層後成功顯示。

DrawingVisual drawingVisual = new DrawingVisual();
            DrawingContext drawingContext = drawingVisual.RenderOpen();
            Pen pen = new Pen(Brushes.DarkGray, 0.5);
            pen.Freeze();
            meshLines.ForEach(line => drawingContext.DrawLine(pen, new System.Windows.Point(line.X1, line.Y1), new System.Windows.Point(line.X2, line.Y2)));
            drawingContext.Close();

            RenderTargetBitmap bmp = new RenderTargetBitmap(Convert.ToInt32(_ucCanvas.MainCanvas.ActualWidth), Convert.ToInt32(_ucCanvas.MainCanvas.ActualHeight), 96, 96, PixelFormats.Pbgra32);
            bmp.Render(drawingVisual);
            _floorImage = new System.Windows.Controls.Image();
            _floorImage.Source = bmp;
            _floorImage.Width = _ucCanvas.MainCanvas.ActualWidth;
            _floorImage.Height = _ucCanvas.MainCanvas.ActualHeight;