轴实际最大值和最大值在缩放或填充后不匹配 (OxyPlot)
Axis ActualMaximum and Maximum don't match after zooming or padding (OxyPlot)
我做了一个示例项目来尝试修复这个错误,但没有成功。我制作了一个简单的 WPF 应用程序,其中包含一个 Plot 和一个 Button。单击该按钮时,它会将 X 轴的最小值设置为 100,将最大值设置为 500。
当我打开应用程序时它可以工作,但是一旦我 pan/zoom 图表它就停止工作了。
When debugging, you can see that the Maximum changes, but the ActualMaximum value stays the same. Minimum 和 ActualMinimum 也是如此。
这是我的 PlotModel 代码和我的 MainWindow 代码。如果格式不好,我深表歉意,我会尽快修复。
public class OxyPlotModel : INotifyPropertyChanged
{
private OxyPlot.PlotModel plotModel;
public OxyPlot.PlotModel PlotModel
{
get
{
return plotModel;
}
set
{
plotModel = value;
OnPropertyChanged("PlotModel");
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged(string name)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(name));
}
}
}
public MainWindow()
{
InitializeComponent();
oxyPlotModel = new OxyPlotModel();
oxyPlotModel.PlotModel = plotModel;
plotView1.DataContext = oxyPlotModel;
plotModel.Axes.Clear();
var yAxis = new OxyPlot.Axes.LinearAxis();
var xAxis = new OxyPlot.Axes.LinearAxis();
xAxis.Position = OxyPlot.Axes.AxisPosition.Bottom;
plotModel.Axes.Add(yAxis);
plotModel.Axes.Add(xAxis);
plotModel.Axes[1].Minimum = 0;
plotModel.Axes[1].Maximum = 700;
}
private void button1_Click(object sender, RoutedEventArgs e)
{
plotModel.Axes[1].Minimum = 100;
plotModel.Axes[1].Maximum = 500;
Debug.Print(plotModel.Axes[1].MaximumPadding.ToString());
plotModel.InvalidatePlot(true);
}
我使用 Axis.Zoom 而不是最大值和最小值来修复它。
我做了一个示例项目来尝试修复这个错误,但没有成功。我制作了一个简单的 WPF 应用程序,其中包含一个 Plot 和一个 Button。单击该按钮时,它会将 X 轴的最小值设置为 100,将最大值设置为 500。 当我打开应用程序时它可以工作,但是一旦我 pan/zoom 图表它就停止工作了。
When debugging, you can see that the Maximum changes, but the ActualMaximum value stays the same. Minimum 和 ActualMinimum 也是如此。 这是我的 PlotModel 代码和我的 MainWindow 代码。如果格式不好,我深表歉意,我会尽快修复。
public class OxyPlotModel : INotifyPropertyChanged
{
private OxyPlot.PlotModel plotModel;
public OxyPlot.PlotModel PlotModel
{
get
{
return plotModel;
}
set
{
plotModel = value;
OnPropertyChanged("PlotModel");
}
}
public event PropertyChangedEventHandler PropertyChanged;
protected void OnPropertyChanged(string name)
{
PropertyChangedEventHandler handler = PropertyChanged;
if (handler != null)
{
handler(this, new PropertyChangedEventArgs(name));
}
}
}
public MainWindow()
{
InitializeComponent();
oxyPlotModel = new OxyPlotModel();
oxyPlotModel.PlotModel = plotModel;
plotView1.DataContext = oxyPlotModel;
plotModel.Axes.Clear();
var yAxis = new OxyPlot.Axes.LinearAxis();
var xAxis = new OxyPlot.Axes.LinearAxis();
xAxis.Position = OxyPlot.Axes.AxisPosition.Bottom;
plotModel.Axes.Add(yAxis);
plotModel.Axes.Add(xAxis);
plotModel.Axes[1].Minimum = 0;
plotModel.Axes[1].Maximum = 700;
}
private void button1_Click(object sender, RoutedEventArgs e)
{
plotModel.Axes[1].Minimum = 100;
plotModel.Axes[1].Maximum = 500;
Debug.Print(plotModel.Axes[1].MaximumPadding.ToString());
plotModel.InvalidatePlot(true);
}
我使用 Axis.Zoom 而不是最大值和最小值来修复它。