Как добавить изображение в диаграмму - PullRequest
0 голосов
/ 04 декабря 2018

[Chart I currently Have[1]

У меня есть такая диаграмма, она еще не закончена, но мне нужно добавить это изображение слева от диаграммы. enter image description here

Диаграмма - это элемент управления Chart из C #, а Second Image - .png.Как я могу разместить изображение на графике?Диаграмма создается на странице .aspx и возвращается в виде изображения для отображения в отчете, поэтому я должен иметь возможность вернуть диаграмму с изображением на нем в виде изображения.

Заранее спасибо!

1 Ответ

0 голосов
/ 04 декабря 2018

Два способа ..:

Чтобы правильно разместить его, вам нужно знатьименно то, что вы хотите.

enter image description here

Вот пример кода для создания изображения выше:

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

Обратите внимание, что StripLines являютсяв координатах значения оси!

Изображение должно быть добавлено к Chart.Images как NamedImage .. Когда вы сделаете chart.SaveImage, аннотация или полоса будут включены ..

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...