标签:style size c ext width t strong string sp art color
  public void CreateChart(Grid oGrid, 
ObservableCollection<ListItem> 
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
标签:style size c ext width t strong string sp art color
原文地址:http://www.cnblogs.com/xuxin-1989/p/3695658.html