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. .NET面试题系列[9] - IEnumerable

    .NET面试题系列目录 什么是IEnumerable? IEnumerable及IEnumerable的泛型版本IEnumerable<T>是一个接口,它只含有一个方法GetEnumera ...

  2. Python黑帽编程1.3 Python运行时与包管理工具

    Python黑帽编程1.3  Python运行时与包管理工具 0.1  本系列教程说明 本系列教程,采用的大纲母本为<Understanding Network Hacks Attack and ...

  3. Hadoop学习笔记—20.网站日志分析项目案例(二)数据清洗

    网站日志分析项目案例(一)项目介绍:http://www.cnblogs.com/edisonchou/p/4449082.html 网站日志分析项目案例(二)数据清洗:当前页面 网站日志分析项目案例 ...

  4. UWP开发之控件:用WebView做聊天框

    目录 说明 WebView存在的价值 使用WebView的几个重要技巧 使用WebView做的聊天框 说明 大家都知道,无论是之前的Winform.WPF还是现在的IOS.Android开发中,都存在 ...

  5. JavaScript多文件下载

    对于文件的下载,可以说是一个十分常见的话题,前端的很多项目中都会有这样的需求,比如 highChart 统计图的导出,在线图片编辑中的图片保存,在线代码编辑的代码导出等等.而很多时候,我们只给了一个链 ...

  6. python数据类型详解

    目录1.字符串2.布尔类型3.整数4.浮点数5.数字6.列表7.元组8.字典9.日期 1.字符串1.1.如何在Python中使用字符串a.使用单引号(')用单引号括起来表示字符串,例如:str='th ...

  7. JS数组定义及详解

    1.什么是数组 数组就是一组数据的集合 其表现形式就是内存中的一段连续的内存地址 数组名称其实就是连续内存地址的首地址 2.关于js中的数组特点 数组定义时无需指定数据类型 数组定义时可以无需指定数组 ...

  8. Javascript学习记录——原生JS实现旋转木马特效

    昨天学习到了JS特效部分,然后老师讲了旋转木马特效的实现,如上图.不过只是讲了通过点击箭头实现图片的切换,对于点击图片本身以及二者联动却是没有讲解. 本着一颗追求完美的心,今天花费了一个中午终于将整个 ...

  9. SQL Server 链接服务器的安全

    一.本文所涉及的内容(Contents) 本文所涉及的内容(Contents) 背景(Contexts) 安全设置(Security Settings) 实现效果:用户A能看见能使用,B用户不能看见这 ...

  10. ICSharpCode.SharpZipLib.dll 移植WP

    由于众所周知的原因. ICSharpCode.SharpZipLib.dll在Unity移植WP的时候出现诸多API不兼容,解决方案是在在Github上面找ICSharpCode.SharpZipLi ...