是否可以在图表元素上绘制一个矩形?

时间:2011-10-19 08:26:59

标签: c# wpf graphics wpftoolkit

我有一些像这样的XAML绘制时间序列的散点图(X轴:DateTime,Y轴:整数值):

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

我可以将一个图形对象(如一行)添加到此网格作为其子项之一,但必须使用XY坐标,这些坐标不同于图表控制。当然这是预期的,因为图表设置了自己的轴。

我能想到的唯一方法是在图表中添加一些虚拟点作为不同的系列,但我希望有更好的方法来做到这一点。有什么建议吗?

编辑:添加了一个数字以进一步澄清。

enter image description here

4 个答案:

答案 0 :(得分:2)

我能想到的唯一方法是检查虚拟树,寻找两个轴对象。

也许使用VisualTreeHelper

一旦您知道他们的位置及其大小与您希望从图表控件获得的比例信息相结合,您就可以计算从图表点到Silverlight坐标的转换。

答案 1 :(得分:1)

您是否尝试用矩形装饰网格?如果是这样,为什么不使用边框? ...(对不起,我没有选择发表评论。因此我问你这个问题作为答案)

答案 2 :(得分:1)

我会创建一个Adorner来实际绘制叠加内容。在Chart控件中创建此图层,或者封装两者的类。并为Chart类提供适当的MatrixTransform,以将覆盖对象中的给定坐标转换为当前的Chart变换。另外有用的是TransformToDescendant,可让您将图表中的点转换为您的装饰。

我不知道你在图表IScrollInfo,Ren​​derTransform等上改变位置的方式和方式。但是有了这些信息,我认为你可以实现你想要的。

答案 3 :(得分:1)

听起来你可以使用vorrtex对我similar question的回答所描述的技术