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. 在Android上使用qemu-user运行可执行文件

    在Android上使用qemu-user运行可执行文件 作者:寻禹@阿里聚安全 前言 QEMU简要介绍: QEMU可以解释执行可执行程序.既然QEMU可以解释执行可执行程序,那么QEMU就能够知道执行 ...

  2. 【安装PHP】如何在openSUSE42.1下编译安装PHP7

    首先推荐一篇文章PHP 7 Release Date Arrived: Will Developers Adopt PHP 7? - PHP Classes blog. 里面说到是否会去使用PHP7, ...

  3. Hadoop学习笔记—18.Sqoop框架学习

    一.Sqoop基础:连接关系型数据库与Hadoop的桥梁 1.1 Sqoop的基本概念 Hadoop正成为企业用于大数据分析的最热门选择,但想将你的数据移植过去并不容易.Apache Sqoop正在加 ...

  4. angularjs 指令详解 - template, restrict, replace

    通过指令机制,angularjs 提供了一个强大的扩展系统,我们可以通过自定义指令来扩展自己的指令系统. 怎样定义自己的指令呢? 我们通过 Bootstrap UI来学习吧.这个项目使用 angula ...

  5. Got the Best Employee of the year 2015 Star Award

    Got "The Best Employee of the year 2015 Star Award" from the company, thanks to all that h ...

  6. 移动APP服务端设计开发注意要点

    2014年,移动APP的热度丝毫没有减退,怎么为您的移动端app设计良好的服务器端接口(API)呢? 下面谈谈我个人的一些想法. 2014年,移动APP的热度丝毫没有减退,并没有像桌面软件被WEB网站 ...

  7. 查看html元素绑定的事件与方法的利器

    WEB标准提倡结构.表现和行为相 分离,现在越来越多采用这种表现和行为的方式,但它也为我们开发调试带来一些问题,网页载入一堆JavaScript,,我们很难搞清楚最后在哪些元素的哪个动作绑定了事件,尤 ...

  8. js高程读书笔记(第4章--变量、作用域和内存)

    JavaScript变量松散类型的本质,决定了它只是在特定时间用于保存特定值的一个名字而已.由于不存在定义某个变量必须要保存何总数据类型值的规则,变量的值及其数据类型可以在脚本的生命周期内改变. 1. ...

  9. vue中v-bind:class动态添加class

    1.html代码 <template v-for='item in names'> <div id="app" class="selectItem&qu ...

  10. 创建 VXLAN - 每天5分钟玩转 OpenStack(111)

    前面我们讨论了 VXLAN 的理论知识,并且在 ML2 中完成了相关配置.今天将通过 Web UI 创建 vxlan100_net 并观察节点网络结构的变化. 打开菜单 Admin -> Net ...