Два способа ..:
Чтобы правильно разместить его, вам нужно знатьименно то, что вы хотите.
![enter image description here](https://i.stack.imgur.com/AXAA8.png)
Вот пример кода для создания изображения выше:
chart1.Images.Add(new NamedImage("gradient", Image.FromFile(yourImagePath)));
ImageAnnotation imgA = new ImageAnnotation();
imgA.Image = "gradient";
imgA.ImageWrapMode = ChartImageWrapMode.Scaled;
imgA.IsSizeAlwaysRelative = false;
imgA.AxisY = ay;
imgA.Y = ay.Minimum;
imgA.Height = ay.Maximum - ay.Minimum;
imgA.X = 0;
imgA.Width = 3;
chart1.Annotations.Add(imgA);
Диаграмма координаты являютсяtricky.
Обратите внимание, что Height
и Y
находятся в axis value coordinates
, так как я связал аннотацию с осью Y, так как я также выключил IsSizeAlwaysRelative
.
По умолчанию Annotatons
находятся в относительные координаты , то есть проценты соответствующих контейнеров.Горизонтальные числа все еще являются относительными, поэтому 3
означает 3%
ширины диаграммы, а X = 0
позиционирует Annotation
в левом углу.
Второй способ:
- Чтобы разместить изображение внутри области графика, но ниже всех линий сетки и точек, вы можете использовать
StripLine
вместо Annotation
.См. здесь .
Пример:
StripLine sl = new StripLine();
sl.IntervalOffset = -1;
sl.Interval = 0;
sl.StripWidth = 0.33;
sl.BorderWidth = 0;
sl.BackImage = "gradient";
sl.BackImageWrapMode = ChartImageWrapMode.Scaled;
ax.StripLines.Add(sl);
![enter image description here](https://i.stack.imgur.com/GWiDy.png)
Обратите внимание, что StripLines
являютсяв координатах значения оси!
Изображение должно быть добавлено к Chart.Images
как NamedImage
.. Когда вы сделаете chart.SaveImage
, аннотация или полоса будут включены ..