Управление диаграммой Microsoft WinForms — поле заголовка

Я хочу создать этот тип заголовка в элементе управления диаграммой Microsoft WinForms, чтобы заголовок был прикреплен к верхней части области диаграммы.

введите здесь описание изображения

Есть ли способ разместить стандартное поле заголовка в верхней части области диаграммы, как это, или я могу добавить такое текстовое поле в элемент управления диаграммой?


person user3329538    schedule 19.12.2014    source источник


Ответы (1)


Вариант 1. Вы можете добавить Label в Chart следующим образом:

int lh = (int)(label1.Height / chart1.Height * 100f);
int cw = chart1.Width;

ChartArea CA = chart1.ChartAreas[0];
ElementPosition EP = CA.InnerPlotPosition;
CA.InnerPlotPosition = new ElementPosition(EP.X, EP.Y + lh, EP.Width, EP.Height - lh);
label1.Location = new Point((int)(EP.X * cw / 100f) + 10, 0);
label1.Width = (int)(EP.Width * cw / 100f) - 20;
label1.Height -= 2;
label1.Parent = chart1;

Или вы можете захотеть расположить метку, закрепив ее сверху.

Вы можете оформить Label по своему вкусу, даже добавить Image..

Возможно, вам придется поиграть со смещением метки. Высота!

введите здесь описание изображения

Вариант 2. Вы можете перемещать поле заголовка таким же образом:

chart1.Titles.Add("TiltelBox");
Title T = chart1.Titles[0];
ChartArea CA = chart1.ChartAreas[0];

T.DockedToChartArea = CA.Name;
T.BackColor = Color.Wheat;
T.Docking = Docking.Top;
T.IsDockedInsideChartArea = true;
ElementPosition EP = T.Position;
T.Position = new ElementPosition
                (EP.X + 10f, EP.Y -0.5f, EP.Width + 83.5f, EP.Height + 9f);

введите здесь описание изображения

Опять же: вам нужно будет поиграть с тем, как вы позиционируете заголовок. Вышеупомянутые здесь работают, но вам нужно будет изменить их с помощью диаграммы.

Помните, что ElementPosition использует в качестве единицы измерения 1/100 размера диаграммы; это хорошо, поскольку масштабируется, но сначала его сложно настроить.

person TaW    schedule 19.12.2014