DevExpress中chart增加窗格,辅助轴等功能

一、增加Y轴辅助轴

//chartControl   图表   ;series   系列点  ;title  标题名  ; defaultBoolean 是或否

public static SecondaryAxisY CreateBarAxisY(ChartControl chartControl, Series series, string title,DefaultBoolean defaultBoolean)
        {
            SecondaryAxisY myAxis = new SecondaryAxisY(series.Name); //声明新的第二辅助轴
            ((XYDiagram)chartControl.Diagram).SecondaryAxesY.Add(myAxis);
            ((BarSeriesView)series.View).AxisY = myAxis;//如果在这传入的是Line类型的需要绑定LineSeriesView类型,可以进行相应的判断
            myAxis.Title.Text = title;
            myAxis.Title.Visibility = defaultBoolean;//标题是否显示
            myAxis.Alignment = AxisAlignment.Far;//辅助轴的位置

            myAxis.Title.Position = AxisTitlePosition.Outside;
            Color color = series.View.Color;//设置坐标的颜色和图表线条颜色一致
            myAxis.Title.TextColor = color;
            myAxis.Label.TextColor = color;
            myAxis.Color = color;

            myAxis.WholeRange.MaxValue = 100;//显示Y轴标签显示值的大小,不设置会自动
            myAxis.WholeRange.MinValue = 0;
            return myAxis;
        }

二、增加X轴辅助轴

与刚才新增Y 轴辅助轴的方式相同,知识把第一句声明改成X轴的即可,

 SecondaryAxisX myAxis = new SecondaryAxisX(series.Name);

注意:X轴不能进行Y轴方法的限值大小,且X轴的标签不能为空

如果X轴辅助轴想要在原X轴的基础上绑定数值,可以参考如下方法,(可以进行循环操作)

CustomAxisLabel customAxisLabel1 = new CustomAxisLabel();//声明自定义轴标签
                customAxisLabel1.AxisValueSerializable = series0.Points[point].Argument;//辅助轴绑定原轴的标签值
                customAxisLabel1.Name = step[i];//辅助轴显示的值
                myAxis.CustomLabels.AddRange(new CustomAxisLabel[] { customAxisLabel1 });//辅助轴添加绑定值

三、增加新的窗格Panes

XYDiagram diagram = (XYDiagram)chartControl1.Diagram;
//新增新的窗格
                diagram.Panes.Add(new XYDiagramPane("My Pane"));

//找到需要绑定到新窗格中的Serise
                PointSeriesView myView1 = (PointSeriesView)series1.View;
                LineSeriesView myView3 = (LineSeriesView)series3.View;
                myView1.Pane = diagram.Panes[0];
                myView3.Pane = diagram.Panes[0];
                diagram.PaneDistance = 10;//窗格间距离
                diagram.PaneLayout.AutoLayoutMode = PaneAutoLayoutMode.Linear; //自动布局的格式
                diagram.PaneLayout.Direction = PaneLayoutDirection.Vertical;//窗格间排列的方式,此处是竖排,还可以进行横排

//可以进行X、Y轴的辅助轴绑定窗格,如果不声明将使用默认的轴
                diagram.SecondaryAxesX.Add(new SecondaryAxisX("My Axis X"));
                diagram.SecondaryAxesY.Add(new SecondaryAxisY("My Axis Y"));
                diagram.SecondaryAxesX[0].Alignment = AxisAlignment.Near;
                diagram.SecondaryAxesY[0].Alignment = AxisAlignment.Near;
                diagram.SecondaryAxesY[0].GridLines.Visible = true;
                diagram.SecondaryAxesY[0].Label.TextPattern = "{V:#0.000}";

//将Serise和X、Y轴进行绑定,注意:如果声明了辅助轴但是serise没有绑定辅助轴,serise还是会使用默认的轴,此时第二窗格会出现两条轴

                myView1.AxisX = diagram.SecondaryAxesX[0];
                myView1.AxisY = diagram.SecondaryAxesY[0];
                myView3.AxisX = diagram.SecondaryAxesX[0];
                myView3.AxisY = diagram.SecondaryAxesY[0];

//如果想要更详细的绑定和使用,可以参考DEV官方文档

四、添加常量线

//chart  图表;linevaule 常量线值;dashstyle 虚实线;thickness  线的宽度;legendtext 常量线图例名;titletext  标题名;color 常量线颜色;titlecolor 标题颜色

public static void ConstantLineStyle(ChartControl chart,double linevaule, DashStyle dashstyle,int thickness
            ,string legendtext,string titletext, Color color,Color titlecolor)
        {
            ConstantLine constantLine1 = new ConstantLine();//new ConstantLine("Constant Line 1");
            XYDiagram diagram = chart.Diagram as XYDiagram;
            diagram.AxisY.ConstantLines.Add(constantLine1);

            // Define its axis value.
            //常量线轴值
            constantLine1.AxisValue = linevaule;
            // Customize the behavior of the constant line.
            //自定义常量线的行为
            constantLine1.Visible = true;
            constantLine1.ShowInLegend = true;
            constantLine1.LegendText = legendtext;
            constantLine1.ShowBehind = true;

            // Customize the constant line's title.
            //自定义常量线的图表中标题
            constantLine1.Title.Visible = true;
            constantLine1.Title.Text = titletext;
            constantLine1.Title.TextColor = titlecolor;
            constantLine1.Title.EnableAntialiasing = DevExpress.Utils.DefaultBoolean.False;
            constantLine1.Title.Font = new Font("Tahoma", 10, FontStyle.Bold); //new Font("Tahoma", 10, FontStyle.Bold);
            constantLine1.Title.ShowBelowLine = true;
            constantLine1.Title.Alignment = ConstantLineTitleAlignment.Near;

            // Customize the appearance of the constant line.
            //自定义常量线的外观
            constantLine1.Color = color;
            constantLine1.LineStyle.DashStyle = dashstyle; //虚线实线
            constantLine1.LineStyle.Thickness = thickness; //常量线宽度
        }

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值