簡體   English   中英

在Windows窗體應用中使用Oxyplot顯示多個LineSeries

[英]Display several LineSeries using Oxyplot in Windows forms app

我正在構建一個應用程序,該應用程序可顯示2D曲線,例如Math.Sin曲線。 提示用戶輸入要在繪圖上顯示的點數。 當他選擇點數並為其輸入參數時,將打開一個新窗口,其中顯示了繪圖。

我的問題是,如果可以的話,我可以返回上一個窗口並輸入新參數,該參數將生成一個新曲線,但將其與第一個曲線一起顯示嗎? 我目前的解決方案是僅顯示一條曲線。 任何時候打開Plot窗口-創建它的一個新實例,所以我想我必須找到一種使用同一實例的方法,因為該窗口沒有關閉,只有隱藏,但我不知道如何。

簽出以下圖片: 在此處輸入圖片說明

正如您已經假設的那樣,您可以使用顯示PlotView的Form的相同實例開始。 您可以在PlotDisplayWindow窗體中公開方法Update ,該方法隨后將使用新的點更新繪圖視圖。 例如,以您的父母形式。

PlotDisplayWindow plotDisplay;

private void RefreshPlot(object sender, EventArgs e)
{
    var dataPoints = GetNewDataPoints();
    if (plotDisplay == null)
    {
        plotDisplay = new PlotDisplayWindow();
        plotDisplay.Show();
    }
    plotDisplay.Update(dataPoints);
}

在您的PlotDisplayWindow窗體中,您可以在首次加載Window時初始化您的模型,然后使用Update方法將更多點添加到Plot View。 例如:

private void PlotDisplayWindow_Load(object sender, EventArgs e)
{
    this.plotView1.Model = new PlotModel { Title = "Example 1" };
}

public void Update(IEnumerable<DataPoint> points)
{
    this.plotView1.Model.Series.Add(new LineSeries { ItemsSource = points });
    this.plotView1.InvalidatePlot(true);
}

PlotView.InvalidatePlot(true)將確保刷新圖並顯示新添加的點。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM