在Winforms应用程序(chat)中使用Oxyplot显示多个LineSeries(OxyPlot.WindowsForms)

📅 2026/8/2 18:05:32 👁️ 阅读次数 📝 编程学习
在Winforms应用程序(chat)中使用Oxyplot显示多个LineSeries(OxyPlot.WindowsForms)
我正在构建一个应用程序,显示一条曲线在2D,例如,Math.Sin曲线。系统会提示用户输入要在绘图上显示的点数。当他选择点数并输入它们的参数时-将打开一个新窗口,其中显示绘图。

我的问题是,如果有办法,我可以返回到前一个窗口并输入新参数,这些参数将生成一条新曲线,但它与第一条曲线一起显示?我现在的解决方案是只显示一条曲线。每当绘图窗口打开时-它的一个新实例被创建,所以我想我必须找到一种方法来使用相同的实例,因为窗口不是关闭的,只是隐藏的,但我不知道如何使用。

查看下图:

正如您已经假设的,您可以从使用显示PlotView的表单的相同实例开始。您可以在PlotDisplayWindow表单中公开一个方法Update,这将使用新的点更新绘图视图。例如,在您的父窗体中。

PlotDisplayWindowplotDisplay;privatevoidRefreshPlot(objectsender,EventArgse){vardataPoints=GetNewDataPoints();if(plotDisplay==null){plotDisplay=newPlotDisplayWindow();plotDisplay.Show();}plotDisplay.Update(dataPoints);}

在PlotDisplayWindow表单中,您可以在第一次加载窗口时初始化模型,然后使用更新方法向绘图视图添加更多点。例如:

privatevoidPlotDisplayWindow_Load(objectsender,EventArgse){this.plotView1.Model=newPlotModel{Title="Example 1"};}publicvoidUpdate(IEnumerable<DataPoint>points){this.plotView1.Model.Series.Add(newLineSeries{ItemsSource=points});this.plotView1.InvalidatePlot(true);}

另一篇文章:、
在WPF中使用OxyPlot绘制多种图表的详细指南
https://blog.51cto.com/u_16213665/14597490