You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

WinForm中DevExpress连续系列图表动态设置X轴最小值及调整显示范围

WinForm DevExpress 日期时间X轴动态范围配置方案

针对连续数据系列,实现X轴最小值动态变化+可手动调整显示范围的需求,在你现有代码基础上,补充以下配置和逻辑:

一、初始化核心配置

完善X轴的范围控制与交互设置,替换/补充现有代码:

// 保留你原有的基础配置
diagram.AxisX.DateTimeScaleOptions.ScaleMode = ScaleMode.Continuous;
diagram.AxisX.Label.ResolveOverlappingOptions.AllowRotate = false;
diagram.AxisX.Label.ResolveOverlappingOptions.AllowStagger = false;
diagram.AxisX.WholeRange.SideMarginsValue = 0;

// 新增:启用X轴滚动与缩放,允许用户手动调整显示范围
diagram.EnableAxisXScrolling = true;
diagram.EnableAxisXZooming = true;

// 设置X轴范围为手动控制模式,后续可动态修改
diagram.AxisX.VisibleRange.Auto = false;
// 初始设置默认显示范围,比如最近1小时数据
var defaultEnd = DateTime.Now;
diagram.AxisX.VisibleRange.SetMinMaxValues(defaultEnd.AddHours(-1), defaultEnd);

二、动态更新X轴最小值

当数据更新或需要自动滚动到最新时间时,调用以下逻辑调整X轴范围:

// 获取数据系列中最新的时间(假设你的数据系列为series1)
DateTime latestTime = series1.Points.Select(p => (DateTime)p.Argument).Max();

// 设置显示范围为「最新时间 - 固定时长」到「最新时间」,比如保留最近2小时数据
TimeSpan displayDuration = TimeSpan.FromHours(2);
diagram.AxisX.VisibleRange.SetMinMaxValues(latestTime.Subtract(displayDuration), latestTime);

// 刷新图表使设置生效
chartControl1.Refresh();

三、关键说明

  • VisibleRange:控制图表当前实际显示的范围,手动模式下可自由修改Min/Max值
  • EnableAxisXScrolling/Zooming:开启后用户可通过鼠标拖拽(滚动)、滚轮(缩放)手动调整显示范围
  • 若为实时推送数据,可在新数据添加完成后触发上述动态更新逻辑,保证X轴始终跟随最新时间

内容的提问来源于stack exchange,提问作者Mehdi Jalili

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.24 19:15:49