日期:2014-05-18  浏览次数:21185 次

DevExpress求助
每隔5秒获取一下设备的电压,

然后用DevExpress的ChartControl(line)画出电压的折线图,要求时实更新(也就是每5秒画一下)

我从没用过DevExpress,哪位给点资料,或提供下思路

------解决方案--------------------
baidu
------解决方案--------------------

------解决方案--------------------
在用dev 没碰到过如此复杂的
------解决方案--------------------
这方面的图形用这个好用
Arction LightningChart Pro

网站


my blog
http://ufo-crackerx.blog.163.com/


------解决方案--------------------
又是这个所有CSDN结帖率最高的兄弟。。。我用过那个控件,有啥具体的问题呢?
------解决方案--------------------
安装一个DEV,有帮助,有源码,有DEMO.
------解决方案--------------------
dev交流: http://smartsoft.5d6d.com/forum-46-1.html

安装完dev有很多demo楼主自己看看
画折线图好像只要添加点就可以了
------解决方案--------------------
你只需要把你的数据源刷一下就可以了。
------解决方案--------------------
试试chartfx,更新数据源,update下chart就解决了,可惜没动画,不知道以后的版本有米有
------解决方案--------------------

------解决方案--------------------
恩,DEMO就够了,如果还有不懂得再问吧。。
------解决方案--------------------
花点时间 查看一下帮助,对你有很大帮助! 如果还是解决不了,
再发帖上来!
------解决方案--------------------
C# code

        /// <summary>
        /// 目标值系列曲线
         /// </summary>
        private Series DestSeries { get { return chartMain.Series.Count > 0 ? chartMain.Series[0] : null; } }

        /// <summary>
        /// X轴值范围
        /// </summary>
        private AxisRange XRange
        {
            get
            {
                SwiftPlotDiagram diagram = chartMain.Diagram as SwiftPlotDiagram;
                if (diagram != null)
                    return diagram.AxisX.Range;
                return null;
            }
        }

       private void SetChartData(CollectPointData pointData)
        {
            if (this.InvokeRequired)
            {
                this.Invoke(new Action<CollectPointData>(SetChartData), pointData);
            }
            else
            {
                decimal colValue = pointData.Value;

                RealSeries.Points.Add(new SeriesPoint(pointData.Time, colValue));
                float minTime = pointData.Time - 30f;
                for (int i = 0; i < DestSeries.Points.Count; i++)
                {
                    if (DestSeries.Points[i].NumericalArgument > minTime)
                    {
                       DestSeries.Points.RemoveRange(0, i);
                       break;
                    }
                }

                XRange.SetMinMaxValues(minTime, pointData.Time);
            }
        }

       public class CollectPointData
       {
        public CollectPointData() { }

        public CollectPointData(float time, decimal value)
            : this()
        {
            this.Time = time;
            this.Value = value;
        }

        public float Time { get; set; }
        public decimal Value { get; set; }
    }