我在创建条形图表时遇到了类似的问题。幸运的是,我的一位同事注意到 silverlight 图表都是从左到右运行的——这会影响它绘制所提供的不同图表的方式。
简单地旋转图表似乎是最好的主意——但它仍然存在一些图表问题(我的图例也被旋转了)。
我不是一个 C# 编码员,所以我创建了一个图表样式的控件模板。我进入模板并旋转图表的边缘面板。下面是一个非常简短和通用的示例:
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="charting:Chart">
<Border Background="{TemplateBinding Background}"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}">
<Grid>
我没有将所有代码都放在这里,但可以在http://silverlight.codeplex.com/SourceControl/changeset/view/80285#778932找到图表的完整模板
<chartingprimitives:EdgePanel x:Name="ChartArea"
Style="{TemplateBindingChartAreaStyle}"
RenderTransformOrigin="0.5,0.5">
<chartingprimitives:EdgePanel.RenderTransform>
<CompositeTransform Rotation="90"/>
</chartingprimitives:EdgePanel.RenderTransform>
</chartingprimitives:EdgePanel>
<Grid x:Name="PlotArea" Canvas.ZIndex="-1"
RenderTransformOrigin="0.5,0.5" />
<Border Canvas.ZIndex="10" BorderBrush="Gray"
BorderThickness="1"/>
</Grid>
</Border>
</ControlTemplate>
</Setter.Value>
</Setter>
这样,图表的整个绘图区域都被翻转,允许图表向下绘制,而不是强制数据向右绘制。(我遇到了同样的问题,线条绘制不正确,并且在连接点的顺序上不稳定)
它对我的图表有所帮助(需要进行调整,但这给出了我能够弄清楚的总体思路)。希望对你有点帮助。