개인 무효 DoAddDataArray 요점 ([] arrPoints)
{
this.Dispatcher.Invoke (DispatcherPriority.Normal 새로운 액션 (() =>
{
이중 dPixelWidth = 픽셀;
이중 dContainerWidth = this.VbxContainer.ActualWidth,
이중 dContainerHeight = this.VbxContainer.ActualHeight ;
이중 dPixelHeight = 픽셀 / 2D,
이중 dCellHeight = 1;
더블 dCellWidth = 1;
DrawingVisual과 DrawingVisual과 새로운으로 DrawingVisual = ();
drawingContext drawingContext drawingVisual.RenderOpen = ();
drawingContext.DrawRectangle (새 SolidColorBrush (Colors.Blue),
새로운 펜 ( ), 새로운 사각형 (0, 0, dPixelWidth, dCellHeight));
//绘制新数据
용 INT (I = 0; I <arrPoints.Length; I ++)
{
이중 dCellX Math.Round = (((arrPoints [I] .X - MinAxisX) / (MaxAxisX - MinAxisX)) * 픽셀);
이중 DY는 arrPoints [I]를 .Y =;
컬러 oColor = this.GetColor (DY);
//drawingContext.DrawRectangle(new SolidColorBrush (oColor)
// 새로운 펜 (), 새로운 사각형 (dCellX, 0, dCellWidth, dCellHeight));
LinearGradientBrush lineBrush = 새로운 LinearGradientBrush ();
lineBrush.GradientStops.Add (새 GradientStop (Colors.Transparent, 0));
lineBrush.GradientStops.Add (새 GradientStop (oColor, 0.25));
lineBrush.GradientStops.Add (새 GradientStop (oColor 0.5));
lineBrush.GradientStops.Add (새 GradientStop (oColor, 0.75));
lineBrush.GradientStops.Add (새 GradientStop (Colors.Transparent 1));
drawingContext.DrawRectangle (lineBrush 새로운 펜 (), 새로운 사각형 (dCellX-1, 0, dCellWidth + 2 dCellHeight));
}
//绘制历史数据
(this.PreviousBitmap = 널!) 경우
drawingContext.DrawImage (this.PreviousBitmap, 새로운 사각형 (0, dCellHeight, dPixelWidth, dPixelHeight));
drawingContext.Close ();
//生成图像处理
RenderTargetBitmap rtbCurrent = 새로운 RenderTargetBitmap ((int)를 dPixelWidth,
(INT) dPixelHeight, 96, 96, PixelFormats.Pbgra32)
rtbCurrent.Render (DrawingVisual과를)
this.PreviousBitmap = rtbCurrent // 현재 그린 히스토리 저장, 직접 다음 드로잉 호출
this.ImgMain.Source = rtbCurrent // 표시 화상이 그려진
))}
}