如何在超过设定的最大点数后自动滚动/平移Oxyplot?

时间:2017-02-19 23:39:20

标签: wpf xaml oxyplot

我使用以下LinearAxis作为我的X轴,我想将最小值设置为0,最大值设置为300.但在某些情况下,X轴可以超过300.那种情况,我希望x轴自动滚动。

<oxy:LinearAxis Position="Bottom" MajorGridlineStyle="Dot" Title="seconds"
                       MinWidth="100"     Minimum="0" Maximum="300"   
IsPanEnabled="True"  ></oxy:LinearAxis>

我知道如果我没有设置最小值或最大值,那么轴实际上是自动缩放的,但它会从一开始就自动缩放,而不管设置的最大值是什么,这不是我想要的。 / p>

我应该尝试使用LinearAxis吗?

1 个答案:

答案 0 :(得分:1)

您可以将ItemsSource的{​​{1}}属性绑定到Series并处理ObservableCollection<DataPoint>事件。像这样:

CollectionChanged

其中

((ObservableCollection<DataPoint>)Points1).CollectionChanged += PlotPointsChanged;
((ObservableCollection<DataPoint>)Points2).CollectionChanged += PlotPointsChanged;
//...

请注意 oxyp void PlotPointsChanged(object sender, System.Collections.Specialized.NotifyCollectionChangedEventArgs e) { double max = 300; foreach (OxyPlot.Wpf.Series ser in oxyp.Series) foreach (DataPoint dp in ser.ItemsSource) if (dp.X > max) max = dp.X; botAxis.Maximum = max; } 的名称, botAxis 是您正在使用的轴。

希望它有所帮助。