Можно ли нарисовать прямоугольник над элементом диаграммы? - PullRequest
3 голосов
/ 19 октября 2011

У меня есть некоторый XAML, подобный этому, рисующий диаграмму рассеяния временного ряда (ось X: DateTime, ось Y: целочисленное значение):

<Grid Name="chartgrid">
    <charting:Chart Name="scatterplot">
    </charting:Chart>
</Grid>

Я могу добавить графический объект, такой как линия, в эту сетку как один из ее дочерних элементов, но я должен сделать это, используя X и Y координаты, которые отличаются от тех, которые используются элементом управления диаграммы. Конечно, это ожидается, потому что график устанавливает свою ось.

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

РЕДАКТИРОВАТЬ: Добавлена ​​фигура для уточнения.

enter image description here

Ответы [ 4 ]

2 голосов
/ 19 октября 2011

Единственный способ, которым я могу придумать, - это исследовать Виртуальное дерево, ища оба объекта оси.

Возможно, используя VisualTreeHelper

Как только вы узнаете их позициии их размеры в сочетании с информацией о масштабе, которую, можно надеяться, можно получить из элемента управления диаграммой, который можно рассчитать для преобразования из точки диаграммы в координату Silverlight.

1 голос
/ 19 октября 2011

Похоже, вы могли бы использовать методы, описанные в ответе vorrtex на мой похожий вопрос

1 голос
/ 19 октября 2011

Я бы создал Adorner , чтобы сделать фактический рисунок вашего оверлея.Создайте этот слой в элементе управления Chart или в классе, который инкапсулирует оба.И дайте классу Chart правильную Matrix или Transform для преобразования заданных координат в ваших объектах наложения в текущее преобразование Chart.Также полезным является TransformToDescendant , который позволяет вам конвертировать точку из вашей диаграммы, например, в вашего рекламодателя.

Я не знаю, что и как вы преобразуете позицию на своей диаграмме IScrollInfo,RenderTransform и т. Д. Но с этой информацией я думаю, что вы можете достичь того, что вы ищете.

1 голос
/ 19 октября 2011

Вы пытаетесь украсить решетку прямоугольником?Если так, то почему бы не использовать границу?... (Извините, у меня пока нет комментариев. Поэтому я задал вам этот вопрос в качестве ответа)

...