MS Charts: получить реальную InnerPlotPosition? - PullRequest
3 голосов
/ 02 сентября 2011

При создании диаграмм с помощью Microsoft Charts мне нужно получить точное положение сетки на графике.

Эта страница говорит - насколько я понимаю - что этого можно достичь с помощью InnerPlotPosition. Однако при использовании этого свойства я получаю следующий прямоугольник: InnerPlotPosition

Этот прямоугольник, кажется, масштабируется с размером диаграммы; при изменении размера диаграммы прямоугольник сжимается, но все еще остается снаружи сетки по всем краям. Я пробовал как добавлять, так и умножать размеры с константой, но ни одна константа не работает для всех размеров.

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

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

1 Ответ

7 голосов
/ 05 сентября 2011

Я наконец нашел решение, которое работает:

     ChartArea a = chart.ChartAreas[0];
     double x1 = a.AxisX.ValueToPixelPosition(a.AxisX.Minimum);
     double x2 = a.AxisX.ValueToPixelPosition(a.AxisX.Maximum);
     double y1 = a.AxisY.ValueToPixelPosition(a.AxisY.Maximum);
     double y2 = a.AxisY.ValueToPixelPosition(a.AxisY.Minimum); 
...