如何在图表上绘制灰色区域(信号的允许范围)?
我使用 Winforms 和标准 MicrosoftSystem.Windows.Forms.DataVisualization
类。
它应该是自定义范围,这意味着起始 Y 点不能仅为零。
我在运行时在线获得的点一一得到。
UPDATE:
我尝试了 StripLine - 没问题,但我不知道如何在 2d 中定义起点。可以仅在 X 上设置,也可以仅在 Y 上设置。我尝试使用第二个图表(区域),但这不是我需要的......
UPDATE2:
感谢@Reza Aghaei!
这里的代码效果很好:
void drawAllowedArea(Point startPoint, Point endPoint, PaintEventArgs e)
{
var l = (float)chart1.ChartAreas[0].AxisX.ValueToPixelPosition(startPoint.X);
var t = (float)chart1.ChartAreas[0].AxisY.ValueToPixelPosition(endPoint.Y);
var r = (float)chart1.ChartAreas[0].AxisX.ValueToPixelPosition(endPoint.X);
var b = (float)chart1.ChartAreas[0].AxisY.ValueToPixelPosition(startPoint.Y);
var rect = RectangleF.FromLTRB(l, t, r, b);
using (var br = new SolidBrush(Color.FromArgb(100, Color.Blue)))
{
e.Graphics.FillRectangle(br, rect.X, rect.Y, rect.Width, rect.Height);
}
e.Graphics.DrawRectangle(Pens.Red, rect.X, rect.Y, rect.Width, rect.Height);
}
//and use this function in chart1_Paint event:
void chart1_Paint(object sender, PaintEventArgs e)
{
drawAllowedArea(new Point(20, 50000), new Point(40, 100000), e);
}
更新结束 ---------------------------------------------------------- ----------
万分感谢!