WPF工具包图表:更改数据值时数据点可视化的位置发生了变化

时间:2012-03-29 11:01:00

标签: wpf wpftoolkit mschart

我使用WPF Toolkit图表显示带有数据点的几个系列。我为LineDataPoints创建了样式,这些样式使用画布上绘制符号(如圆圈)的画布。

这是样式定义之一:

<Style x:Key="CircleDataPointStyleRed"
       TargetType="chartingToolkit:LineDataPoint">
    <Setter Property="Background"
            Value="Red" />
    <Setter Property="IsTabStop"
            Value="False" />
    <Setter Property="Width"
            Value="10" />
    <Setter Property="Height"
            Value="10" />
    <Setter Property="Template">
        <Setter.Value>
            <ControlTemplate TargetType="chartingToolkit:LineDataPoint">
                <Canvas>
                    <Ellipse Height="10"
                             Width="10"
                             Stroke="Red" />
                </Canvas>
            </ControlTemplate>
        </Setter.Value>
    </Setter>
</Style>

当我将数据加载到视图模型中时,图表会正确显示,线条可见,并且绘制的数据点居中到正确的位置,因此圆的中心点位于实际数据点的位置。 现在,当我将一组不同的数据加载到图表中时(更改LineSeries绑定的ObservableCollections),仍然可以正确绘制线条但是圆圈不再是居中的,而是将其画布的左上角放在实际数据点的位置。 当我调整图表大小时,圆圈的位置再次正确。

这里有一些屏幕截图要澄清:

加载第一个数据后: After first data is loaded

数据更改为不同值后: After data has changed to different values

图表调整后: After the chart has been resized

到目前为止我尝试过的(各无济于事):

  • 在“模板”中的“画布”上设置Horizo​​ntalAlignment和VerticalAlignment
  • 尝试调用UpdateLayout()以及控件上的所有InvalidateXxx方法

即使在更改数据后,如何才能在正确的位置绘制数据点?

0 个答案:

没有答案