我有一个telerik RadChartView,它有一些数据,我的X轴是DateTimeContinuousAxis,我的Y轴是LinearAxis。这个RadChartView有一个缩放按钮,使用LassoZoomController方法进行缩放。我面临一个问题,在放大或缩小后,我想得到用户在缩放中可以看到的可见点(忽略那些在缩放中不可见的)。有没有一种方法可以在缩放后只得到图表中可见的点?
在下面的代码中,我想验证一下,只有当dateTime在我的radChartView中可见时,才将它添加到列表中
var categoricalDataPoints = radChartView.Series.Where(serie => serie.IsVisible).SelectMany(serie => serie.DataPoints)
.OfType<CategoricalDataPoint>().ToList();
var visibleDateTimes = new List<DateTime>();
foreach (var categoricalDataPoint in categoricalDataPoints)
{
if (categoricalDataPoint.Category is DateTime dateTime)
{
visibleDateTimes.Add(dateTime);
}
}
我尝试获取第一个轴并将其解析为DateTimeContinuousAxis并使用ActualRange,但此范围考虑了图表的所有日期时间,而不仅仅是可见时间:
var categoricalDataPoints = crvMain.Series.Where(serie => serie.IsVisible).SelectMany(serie => serie.DataPoints)
.OfType<CategoricalDataPoint>().ToList();
var visibleDateTimes = new List<DateTime>();
if (crvMain.Axes[0] is DateTimeContinuousAxis dateTimeContinuousAxis)
{
foreach (var categoricalDataPoint in categoricalDataPoints)
{
if (categoricalDataPoint.Category is DateTime dateTime)
{
if (dateTime >= dateTimeContinuousAxis.ActualRange.Minimum && dateTime <= dateTimeContinuousAxis.ActualRange.Maximum)
{
visibleDateTimes.Add(dateTime);
}
}
}
}
1条答案
按热度按时间lyfkaqu11#
Gabriel,我准备了一个示例代码片段,演示如何在执行平移/缩放操作后获取可见数据点。下面的截图说明了实现的结果: