如何为 Y 轴设置固定的可见范围?
How to set a fixed VisibleRange for the YAxis?
我正在尝试在 YAxis 上实现没有 AutoRange 的 SciChart。然而,它似乎完全无视我的范围。
我已经尝试将我的 YAxis 设置为 NumericAxisViewModel,其 DoubleRange 固定为 -5000 到 5000,但它始终显示 0 到 10 的范围。通过调试器时,我可以清楚地看到 NumericAxis 正在接受我的 DoubleRange 但是当图表最终呈现时,它只是 0 到 10。这个 YAxis 后来被添加到一个名为 YAxes 的 Observable 集合中,该集合被绑定在 XAML.
轴构造
this.YAxis = new NumericAxisViewModel
{
AxisAlignment = AxisAlignment.Left,
DrawMajorGridLines = false,
DrawMinorGridLines = false,
DrawMajorBands = false,
VisibleRange = new DoubleRange(5000, -5000),
Visibility = Visibility.Visible,
Id = channel.Id.ToString(),
};
更高的视图模型正在收集数据
foreach (IDataChannelViewModel d in this.Channels)
{
this.YAxes.Add(d.YAxis);
this.RenderableSeries.Add(d.RenderableSeries);
d.FifoCapacity = this.BufferSize;
}
并且 XAML 正在绑定它。
<sc:SciChartSurface x:Name="ChartSurface" Grid.Row="2" Grid.ColumnSpan="4" RenderableSeries="{sc:SeriesBinding RenderableSeries}" YAxes="{sc:AxesBinding YAxes}" Visibility="Hidden">
<sc:SciChartSurface.XAxis>
<sc:NumericAxis Name="XAxisControl" VisibleRange="{Binding SelectedRange}" DrawMajorGridLines="True" DrawMinorTicks="True"/>
</sc:SciChartSurface.XAxis>
</sc:SciChartSurface>
<sc:SciChartSurface x:Name="OverviewSurface"
Background="White"
Grid.Row="2"
Grid.ColumnSpan="4"
Loaded="OnOverviewSurfaceLoaded"
RenderableSeries="{Binding ElementName=ChartSurface, Path=RenderableSeries}"
YAxes="{sc:AxesBinding YAxes}">
<sc:SciChartSurface.XAxis>
<sc:NumericAxis AutoRange="Always" DrawMajorGridLines="False" DrawMinorGridLines="False" DrawMajorBands="False" Visibility="Collapsed"/>
</sc:SciChartSurface.XAxis>
</sc:SciChartSurface>
我需要将其设置在 5000 到 -5000 的固定范围内。
我错误地使用了 DoubleRange 的构造函数,第一个是最小值,第二个是最大值。
我正在尝试在 YAxis 上实现没有 AutoRange 的 SciChart。然而,它似乎完全无视我的范围。
我已经尝试将我的 YAxis 设置为 NumericAxisViewModel,其 DoubleRange 固定为 -5000 到 5000,但它始终显示 0 到 10 的范围。通过调试器时,我可以清楚地看到 NumericAxis 正在接受我的 DoubleRange 但是当图表最终呈现时,它只是 0 到 10。这个 YAxis 后来被添加到一个名为 YAxes 的 Observable 集合中,该集合被绑定在 XAML.
轴构造
this.YAxis = new NumericAxisViewModel
{
AxisAlignment = AxisAlignment.Left,
DrawMajorGridLines = false,
DrawMinorGridLines = false,
DrawMajorBands = false,
VisibleRange = new DoubleRange(5000, -5000),
Visibility = Visibility.Visible,
Id = channel.Id.ToString(),
};
更高的视图模型正在收集数据
foreach (IDataChannelViewModel d in this.Channels)
{
this.YAxes.Add(d.YAxis);
this.RenderableSeries.Add(d.RenderableSeries);
d.FifoCapacity = this.BufferSize;
}
并且 XAML 正在绑定它。
<sc:SciChartSurface x:Name="ChartSurface" Grid.Row="2" Grid.ColumnSpan="4" RenderableSeries="{sc:SeriesBinding RenderableSeries}" YAxes="{sc:AxesBinding YAxes}" Visibility="Hidden">
<sc:SciChartSurface.XAxis>
<sc:NumericAxis Name="XAxisControl" VisibleRange="{Binding SelectedRange}" DrawMajorGridLines="True" DrawMinorTicks="True"/>
</sc:SciChartSurface.XAxis>
</sc:SciChartSurface>
<sc:SciChartSurface x:Name="OverviewSurface"
Background="White"
Grid.Row="2"
Grid.ColumnSpan="4"
Loaded="OnOverviewSurfaceLoaded"
RenderableSeries="{Binding ElementName=ChartSurface, Path=RenderableSeries}"
YAxes="{sc:AxesBinding YAxes}">
<sc:SciChartSurface.XAxis>
<sc:NumericAxis AutoRange="Always" DrawMajorGridLines="False" DrawMinorGridLines="False" DrawMajorBands="False" Visibility="Collapsed"/>
</sc:SciChartSurface.XAxis>
</sc:SciChartSurface>
我需要将其设置在 5000 到 -5000 的固定范围内。
我错误地使用了 DoubleRange 的构造函数,第一个是最小值,第二个是最大值。