我正在尝试制作一个简单的图表,其中 YAxis 和 SecondaryYAxis 具有相同的范围和缩放。我有两个问题:
1) Range 和 Zoom 的绑定似乎没有按预期工作:
<charts:Chart.YAxis>
<charts:LinearAxis LabelsPosition="Inside" x:Name="PrimaryAxis"/>
</charts:Chart.YAxis>
<charts:Chart.SecondaryYAxis>
<charts:LinearAxis LabelsPosition="Inside"
Range="{Binding ElementName=PrimaryAxis, Path=ActualRange}"
Zoom="{Binding ElementName=PrimaryAxis, Path=Zoom}"
AutoScaleToVisibleData="False"/>
</charts:Chart.SecondaryYAxis>
如果我在 YAxis 上显示一个系列,在 SecondaryYAxis 上显示另一个系列,则两者都有不同的比例或范围。
2)如果我没有在 SecondaryYAxis 上显示系列(因为我想让两个轴都显示相同的数据,使用 SecondaryYAxis 没有意义),“未使用”的 SecondaryYAxis 根本不显示标签或刻度。
简而言之:如何让图表在左侧和右侧显示相同的 YAxis?
======= 编辑 =======
好的,正如@NielW 指出的那样,我没有做错任何事。问题是我在 TabControl 中有图表,导致图表没有设置 XAML 中指定的绑定。不要问我为什么,但这里是修复:
我没有在 XAML 中设置绑定,而是从后面的代码手动进行:
var primary = ResultChart.YAxis as LinearAxis;
var secondary = ResultChart.SecondaryYAxis as LinearAxis;
var rangeBinding = new Binding("ActualRange")
{
Source = primary
};
secondary.SetBinding(LinearAxis.RangeProperty, rangeBinding);
var zoomBinding = new Binding("Zoom")
{
Source = primary
};
secondary.SetBinding(LinearAxis.ZoomProperty, zoomBinding);
我不知道为什么当图表放在 TabControl 中时,xaml 中的绑定不起作用。也许有人可以详细说明?!