菜单 学习猿地 - LMONKEY

VIP

开通学习猿地VIP

尊享10项VIP特权 持续新增

知识通关挑战

打卡带练!告别无效练习

接私单赚外块

VIP优先接,累计金额超百万

学习猿地私房课免费学

大厂实战课仅对VIP开放

你的一对一导师

每月可免费咨询大牛30次

领取更多软件工程师实用特权

入驻
0
0

visifire 图表双坐标轴 silverlight

原创
05/13 14:22
阅读数 187

课程推荐:PHP开发工程师--学习猿地精品课程

public void CreateChart(Grid oGrid, ObservableCollection lBaseOilBar)
{
foreach (ListItem li in lBaseOilBar)
{
//图表大小,框线
Chart chart = new MyCharts();
chart.Width = 800;
chart.Height = 600;
chart.ScrollingEnabled = false;
//图表标题
Title title = new Title();
string sTitle = li.Title;
title.Text = sTitle;
title.FontSize = 16;
chart.Titles.Add(title);
// X 坐标轴
Axis axisX = new Axis();
AxisLabels xal = new AxisLabels
{
FontSize = 14//设置文字大小
};
axisX.AxisLabels = xal;
chart.AxesX.Add(axisX);
// Y 坐标轴
Axis axisY = new Axis();
AxisLabels yal = new AxisLabels
{
FontSize = 14//设置文字大小
};
axisY.AxisLabels = yal;
//Y轴数据单位
string sYUint = li.YUint;
axisY.Title = sYUint;
axisY.TitleFontSize = 15;
chart.AxesY.Add(axisY);
if (li.ChartType == "Column") //柱状图
{
switch (li.YAXISs.Count())
{
case 1:
chart.DataPointWidth = 4;//设置柱子宽度
break;
case 2:
chart.DataPointWidth = 2.5;
break;
case 3:
chart.DataPointWidth = 1.8;
break;
}
}
title.MouseLeftButtonDown += new MouseButtonEventHandler(title_MouseLeftButtonDown);

            ////设置图标字体大小
            //Legend legend = new Legend();
            //legend.FontSize = 13;
            //chart.Legends.Add(legend);1

            //X轴数据
            string[] sXLabel = li.XAXIS.ToArray();
            string sTableName = "";
            #region 点击是否触发事件,钻取数据图表赋值一个物理表名
            bool ifGetSig = false;
            switch (li.ChartName)
            {
                case "Stock":
                    sTableName = "StockSingleOildom";
                    ifGetSig = true;
                    break;
                case "Drill_JC":
                    sTableName = "Drill_JCSingleOildom";
                    ifGetSig = true;
                    break;
                case "EXTRACTIONOIL":
                    sTableName = "EXTRACTIONOILSingleOildom";
                    ifGetSig = true;
                    break;
                case "Drill_MACHINE":
                    sTableName = "Drill_MACHINESingleOildom";
                    ifGetSig = true;
                    break;
                case "PROVEDRILL":
                    sTableName = "PROVEDRILLSingleOildom";
                    ifGetSig = true;
                    break;
            }
            #endregion
            #region 图表柱状个数,循环加载数据
            ColorSet cs = new ColorSet();
            cs.Id = "colorset1"; // 设置ColorSet 的 Id 为 colorset1
            //foreach (YAXIS oYAXIS in li.YAXISs)
            for (int j = 0; j < li.YAXISs.Count(); j++)
            {
                YAXIS oYAXIS = (YAXIS)li.YAXISs[j];
                string sYTitle = "";
                sYTitle = oYAXIS.Name;
                double[] dYValue = null;
                dYValue = oYAXIS.YValue.ToArray();
                DataSeries dataSeries = new DataSeries();
                dataSeries.LegendText = sYTitle;
                #region 双坐标轴
                string IsTwoY = "";
                IsTwoY = oYAXIS.TWOY;
                if (IsTwoY == "true")
                {
                    Axis axisYT = new Axis() { AxisType = AxisTypes.Secondary };
                    AxisLabels yalT = new AxisLabels
                    {
                        //Enabled = true, //设置是否显示坐标轴上的文本,默认值为true
                        //Angle = 45,//设置文本显示的角度,取值为 –90 至 90
                        FontSize = 14//设置文字大小
                    };
                    axisYT.AxisLabels = yalT;
                    axisYT.AxisMinimum = 0;
                    axisYT.AxisMaximum = 100;
                    //Y轴数据单位
                    string sYUintT = li.YUintT;
                    axisYT.Title = sYUintT;
                    axisYT.TitleFontSize = 15;
                    chart.AxesY.Add(axisYT);
                    dataSeries.AxisYType = AxisTypes.Secondary;
                }
                #endregion
                else
                {
                    dataSeries.AxisYType = AxisTypes.Primary;
                }
                #region 设置柱状图的颜色 待开发
                //ColorSet cs = new ColorSet();
                //string strColor = oYAXIS.Color;
                //////Colors oColors = new Colors();
                //cs.Id = "colorset1"; // 设置ColorSet 的 Id 为 colorset1
                //cs.Brushes.Add(new SolidColorBrush(Colors.Green));
                //cs.Brushes.Add(new SolidColorBrush(Colors.Red));
                //cs.Brushes.Add(new SolidColorBrush(Colors.Blue));
                ////cs.Brushes.Add(new SolidColorBrush(Colors.Yellow));
                ////cs.Brushes.Add(new SolidColorBrush(Colors.Orange));
                //chart.ColorSets.Add(cs);
                //chart.ColorSet = "colorset1";  // 设置 Chart 使用自定义的颜色集合 colorset1
                string strColor = oYAXIS.Color;
                switch (strColor)
                {
                    case "Red":
                        cs.Brushes.Add(new SolidColorBrush(Color.FromArgb(0xff, 0xff, 0x45, 0x00))); //#FFFF4500 orangeRed
                        break;
                    case "Yellow":
                        cs.Brushes.Add(new SolidColorBrush(Color.FromArgb(0xff, 0xda, 0xa5, 0x20)));//FFDAA520 Goldenrod
                        break;
                    case "Orange":
                        cs.Brushes.Add(new SolidColorBrush(Colors.Orange));
                        break;
                    case "Green":
                        cs.Brushes.Add(new SolidColorBrush(Colors.Green));
                        break;
                    case "Blue":
                        cs.Brushes.Add(new SolidColorBrush(Color.FromArgb(0xff, 0x41, 0x69, 0xe1))); //FF4169E1 RoyalBlue
                        break;
                    default:
                        break;
                }
                #endregion
                #region 图表类型(柱状,饼状……)
                string sChartType = li.ChartType;
                RenderAs oRenderAs = new RenderAs();
                switch (sChartType)
                {
                    case "Column":
                        oRenderAs = RenderAs.Column;
                        break;
                    case "Pie":
                        oRenderAs = RenderAs.Pie;
                        //dataSeries.LabelFontSize = 14;//设置图标字体大小
                        break;
                    case "Line":
                        oRenderAs = RenderAs.Line;
                        break;
                }
                dataSeries.RenderAs = oRenderAs;
                #endregion
                #region 构造数据
                DataPoint dp;
                if (sXLabel != null)
                {
                    for (int i = 0; i < sXLabel.Length; i++)
                    {
                        dp = new DataPoint();
                        dp.AxisXLabel = sXLabel[i];
                        dp.YValue = dYValue[i];
                        if (ifGetSig)
                        {
                            dp.Tag = sTableName;
                            //dp.MouseLeftButtonUp += new MouseButtonEventHandler(dataPoint_MouseLeftButtonUp);
                        }
                        //饼状图去除值为0的oildom
                        if ((dataSeries.RenderAs == RenderAs.Pie || dataSeries.RenderAs == RenderAs.Line) && dp.YValue == 0)
                        {

                        }

                        else
                        {
                            dataSeries.DataPoints.Add(dp);
                        }
                    }
                }
                #endregion
                chart.Series.Add(dataSeries);
            }
            // 设置 Chart 使用自定义的颜色集合 colorset1
            if (cs.Brushes.Count > 0)
            {
                chart.ColorSets.Clear();
                chart.ColorSets.Add(cs);
                chart.ColorSet = "colorset1";
            }
            #endregion
            oGrid.Children.Add(chart);
        }
    }

visifire 图表双坐标轴 silverlight,码迷,mamicode.com

visifire 图表双坐标轴 silverlight

标签:style size c ext width t strong string sp art color

原文地址:http://www.cnblogs.com/xuxin-1989/p/3695658.html

发表评论

0/200
0 点赞
0 评论
收藏
为你推荐 换一批