private void BindData()
{
chartControl1.AnnotationRepository.Clear();
chartControl1.Series.Clear();
TextAnnotation text1 = new TextAnnotation();
TextAnnotation text2 = new TextAnnotation();
PaneAnchorPoint panel1 = new PaneAnchorPoint();
PaneAnchorPoint panel2 = new PaneAnchorPoint();
RelativePosition relPos1 = new RelativePosition();
relPos1.Angle = ;
Series series1 = new Series("HELLO",ViewType.Line); foreach (var item in GetDate())
{
if (item.v1 == )
{
series1.Points.Add(new SeriesPoint(item.d1, item.v1));
RelativePosition re = new RelativePosition();
re.Angle = ;
TextAnnotation vs = new TextAnnotation();
vs.Lines = new string[] { "在该时间段出现故障" };
vs.RuntimeMoving = true;
PaneAnchorPoint panes = new PaneAnchorPoint();
panes.AxisXCoordinate.AxisValueSerializable = item.d1.ToString();
panes.AxisYCoordinate.AxisValueSerializable = item.v1.ToString();
vs.AnchorPoint = panes;
vs.ShapePosition = re;
this.chartControl1.AnnotationRepository.Add(vs);
} if (item.v1 > )
{
series1.Points.Add(new SeriesPoint(item.d1, item.v1));
TextAnnotation vs = new TextAnnotation();
vs.Lines=new string[]{"在该时间段出现报警"} ;
vs.RuntimeMoving = true;
PaneAnchorPoint panes = new PaneAnchorPoint();
panes.AxisXCoordinate.AxisValueSerializable = item.d1.ToString();
panes.AxisYCoordinate.AxisValueSerializable = item.v1.ToString();
vs.AnchorPoint = panes;
vs.ShapePosition = relPos1;
this.chartControl1.AnnotationRepository.Add(vs);
}
else
{
series1.Points.Add(new SeriesPoint(item.d1, item.v1));
} }
//panel1.AxisXCoordinate.AxisValueSerializable = DateTime.Now.AddDays(-1).ToString();
//panel1.AxisYCoordinate.AxisValueSerializable = "22";
//text1.AnchorPoint = panel1;
//text1.Name = "Text Annotation 1";
//text1.Lines = new string[] {"A曲线"};
//relPos1.Angle = -228.15794479643927;
//relPos1.ConnectorLength = 102.68641584941993;
//text1.ShapePosition = relPos1; //panel2.AxisXCoordinate.AxisValueSerializable = DateTime.Now.AddDays(-2).ToString();
//panel2.AxisYCoordinate.AxisValueSerializable = "16";
//text2.AnchorPoint = panel2;
//text2.Name = "Text Annotation 1";
//text2.Lines = new string[] { "B曲线" };
//relPos1.Angle = -228.15794479643927;
//relPos1.ConnectorLength = 202.68641584941993;
//text2.ShapePosition = relPos1;
//this.chartControl1.AnnotationRepository.AddRange(new DevExpress.XtraCharts.Annotation[] {
//text2,text1});
chartControl1.Series.Add(series1);
} private List<lx> GetDate()
{
List<lx> ls = new List<lx>();
ls.Add(new lx() { d1 = DateTime.Now.AddDays(-), v1 = });
ls.Add(new lx() { d1 = DateTime.Now.AddDays(-), v1 = });
ls.Add(new lx() { d1 = DateTime.Now.AddDays(-), v1 = });
ls.Add(new lx() { d1 = DateTime.Now.AddDays(-), v1 = });
ls.Add(new lx() { d1 = DateTime.Now.AddDays(-), v1 = });
return ls;
}

Devexpress TextAnnotation的更多相关文章

  1. 初识Devexpress ChartControl 之 动态添加stepline及TextAnnotation

    最近在用devexpress 第三方软件做项目. devexpress 的控件使用简单.功能强大.类型丰富.界面优美.扩展性强.今天主要是动态生成了一条StepLine.生成后的效果(能力不强,所以做 ...

  2. 在DevExpress程序中使用GridView直接录入数据的时候,增加列表选择的功能

    在我上篇随笔<在DevExpress程序中使用Winform分页控件直接录入数据并保存>中介绍了在GridView以及在其封装的分页控件上做数据的直接录入的处理,介绍情况下数据的保存和校验 ...

  3. DevExpress - 使用 GaugeControl 标尺组件制作抽奖程序 附源码

    前不久,公司举办了15周年庆,其中添加了一个抽奖环节,要从在读学员中随机抽取幸运学员,当然,这个任务就分到了我这里. 最后的效果如下,启动有个欢迎页面,数据是来自Excel的,点击开始则上面的学号及姓 ...

  4. 图解DevExpress RichEditControl富文本的使用,附源码及官方API

    9点半了,刚写到1.2.   该回家了,明天继续写完. 大家还需要什么操作,留言说一下,没有的我明天继续加. 好久没有玩DevExpress了,今天下载了一个玩玩,发现竟然更新到14.2.5了..我去 ...

  5. DevExpress学习系列(控件篇):GridControl的基本应用

    一般属性设置 不显示分组框:Gridview->Option View->Show Group Panel=false 单元格不可编辑:gridcontrol -->gridview ...

  6. 在DevExpress程序中使用Winform分页控件直接录入数据并保存

    一般情况下,我们都倾向于使用一个组织比较好的独立界面来录入或者展示相关的数据,这样处理比较规范,也方便显示比较复杂的数据.不过在一些情况下,我们也可能需要直接在GridView表格上直接录入或者修改数 ...

  7. 在DevExpress程序中使用TeeList控件以及节点查询的处理

    在很多情况下,我们需要通过树列表进行数据的展示,如一些有层次关系的数据,通过有层级的展示,能够使用户更加直观查看和管理相关的数据.在一般Winform开发的情况下,可以使用微软的TreeView控件, ...

  8. 在DevExpress程序中使用内置的图标构建美观的界面元素

    在我们一般的程序中,为一般的界面元素添加一定的图标展示,有助于提升界面的整体的美观.结合排版布局,以及固定场景的图标,往往给用户非常好的直观感受:统一.美观.易理解.因此在一般的程序界面中,都尽量在略 ...

  9. 在DevExpress程序中使用条形码二维码控件,以及进行报表打印处理

    在很多业务系统里面,越来越多涉及到条形码.二维码的应用了,不管在Web界面还是WInform界面都需要处理很多物料相关的操作,甚至很多企业为了减少录入错误操作,为每个设备进行条形码.二维码的标签,直接 ...

随机推荐

  1. ASP.NET Web API 2.1支持Binary JSON(Bson)

    ASP.NET Web API 2.1内建支持XML.Json.Bson.form-urlencoded的MiME type,今天重点介绍下Bson.BSON是由10gen开发的一个数据格式,目前主要 ...

  2. 微软“.Net社区虚拟大会”dotnetConf2015 第二天 无处不在的Xamarin

    今天,微软召开了“.Net 社区虚拟大会”(dotnetConf),包括微软的 Scott Hanselman 和 Xamarin 的 Miguel De Icaza 在内的知名人士,都将在 Chan ...

  3. VS2013.3 & VS2014 任务资源管理器

    Web 开发,特别是前端 Web 开发,正迅速变得像传统的后端开发一样复杂和精密.前端生成过程,可以囊括SASS 和LESS扩展.CSS/JS的压缩包.JSHint 或 JSLint的运行时 .或者更 ...

  4. ReactJS入门(四)—— 组件API

    本篇将介绍 React 组件的API,其中主要的几个API我们在第一篇的时候便已介绍过,这里可以做个温故知新. 本篇的代码你也可以在我的Github上获取到. setState 参数: nextSta ...

  5. 到底应该选择那种Linux.NET的部署方式?

    当前部署Linux.NET环境的方式可谓是五花八门,既有传统的源码编译的方式.又有各式各样的一键安装脚本.还有绿色包安装方式,而随着Mono官方的新站上线,更增加了采用RPM包的部署方式.那对于一名L ...

  6. CSharpGL(4)设计和使用Camera

    CSharpGL(4)设计和使用Camera +BIT祝威+悄悄在此留下版了个权的信息说: 主要内容 描述在OpenGL中Camera的概念和用处. 设计一个Camera以及操控Camera的Sate ...

  7. Objective-C 工厂模式(下) -- 抽象工厂模式

    相比简单工厂模式, 只有一个工厂 能生产的手机也是固定的 抽象工厂模式类似于有很多家工厂, 当用户要买什么手机就创建对应的工厂去生产 比如用户要买iPhone就创建一个Apple工厂来生产手机, 要买 ...

  8. Android开发学习之路-Android Studio开发小技巧

    上一次发过了一个介绍Studio的,这里再发一个补充下. 我们都知道,Android Studio的功能是非常强大的,也是很智能的.如果有人告诉你学Android开发要用命令行,你可以告诉他Andro ...

  9. 2013 duilib入门简明教程 -- 部分bug (11)

     一.WindowImplBase的bug     在第8个教程[2013 duilib入门简明教程 -- 完整的自绘标题栏(8)]中,可以发现窗口最大化之后有两个问题,     1.最大化按钮的样式 ...

  10. Leetcode-190 Reverse Bits

    #190. Reverse Bits Reverse bits of a given 32 bits unsigned integer. For example, given input 432615 ...