【发布时间】:2013-05-29 15:11:45
【问题描述】:
我正在尝试制作一个简单的图表,其中 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 根本不显示标签或刻度.
简而言之:如何让图表在左侧和右侧显示相同的 Y 轴?
======= 编辑 =======
好的,正如@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 中的绑定不起作用。也许有人可以详细说明一下?!
【问题讨论】: