我使用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),仍然可以正确绘制线条但是圆圈不再是居中的,而是将其画布的左上角放在实际数据点的位置。 当我调整图表大小时,圆圈的位置再次正确。
这里有一些屏幕截图要澄清:
加载第一个数据后:
数据更改为不同值后:
图表调整后:
到目前为止我尝试过的(各无济于事):
即使在更改数据后,如何才能在正确的位置绘制数据点?