【问题标题】:C# Winforms Livecharts: Fire Event when rendering of CartesianChart is finishedC# Winforms Livecharts:CartesianChart 渲染完成时触发事件
【发布时间】:2021-04-02 07:56:30
【问题描述】:

我正在使用LiveCharts.WinForms.CartesianChart来渲染大量的点:

myChart.Zoom = ZoomingOptions.X;
myChart.Pan = PanningOptions.X;

myChart.Series.Add(new LineSeries
{
    Values = chartValuesScores,
    Fill = System.Windows.Media.Brushes.Transparent,
    PointGeometrySize = 5
});
myChart.AxisX.Add(new Axis
{
    Labels = labels
});

我想要做的是显示某种进度条并停止LiveCharts 需要渲染这些点的时间。但似乎LiveCharts 异步渲染了这些点。这意味着在运行上面的代码之后,它会继续运行其他代码行并退出该函数。 因此,我的问题是:有没有办法检测到LiveCharts.WinForms.CartesianChart 是否完成了渲染?我找不到活动或其他内容。

【问题讨论】:

    标签: c# winforms livecharts


    【解决方案1】:

    我在查看文档时发现了这一点:https://lvcharts.net/App/examples/v1/wpf/Events

    它将Chart.UpdaterTick 列为事件之一。当图表完成加载数据并将其呈现在屏幕上时,该事件似乎会触发,我相信您在寻找什么?

    我已经对自己进行了测试,并且似乎可以按预期工作。

    【讨论】:

      【解决方案2】:

      有一个CartesianChart.Loaded 事件,在图表呈现后触发。

      myChart.Loaded += myChart_Loaded;
      
      private void myChart_Loaded(object sender, RoutedEventArgs e)
      {
          // chart is rendered
      }
      

      【讨论】: