如何在绘图上绘制矩形?

How to draw rectangle over a plot?

是否可以使用OxyPlot绘制矩形?就像是 :

或者OxyPlot不支持这个?

你确实可以。

有几种方法可以做到这一点。我更愿意使用注释,因为这也会为您提供突出显示的背景,并为您提供在此区域添加点击事件的选项。如果你想让它看起来像你提供的图像,可能有一种方法可以删除突出显示。

var Event = new PolygonAnnotation();

Event.Layer = AnnotationLayer.BelowAxes;
Event.StrokeThickness = 5;
Event.Stroke = OxyColor.FromRgb(0, 0, 255);
Event.LineStyle = LineStyle.Automatic;

Event.Points.Add(new DataPoint(X, Y));
Event.Points.Add(new DataPoint(X, Y));            
Event.Points.Add(new DataPoint(X, Y));
Event.Points.Add(new DataPoint(X, Y));

另一种更简单的方法是创建一个线系列并为其指定矩形的角。

为什么不使用已经存在的 RectangleAnnotation? 它提供填充、描边、点击检测、文本。 示例:

model.Annotations.Add(new RectangleAnnotation { MinimumX = 20, MaximumX = 70, MinimumY = 10, MaximumY = 40, TextRotation = 10, Text = "RectangleAnnotation", Fill = OxyColor.FromAColor(99, OxyColors.Blue), Stroke = OxyColors.Black, StrokeThickness = 2 });

如果现有注释不够好,您始终可以创建自己的自定义注释。