在实际项目开展中,往往会牵扯到需要绘制图表的情况。而Visifire是一个比较美观大方的第三方图表控件
本文是对Visifire控件简单封装,方便大家调用。
下面都是我个人自己用的封装类,大家根据自己实际情况进行修改。
using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Visifire.Charts;
using Visifire.Commons;
namespace ExtendChart
{
public class PointDrawing
{
public string Themetext = "Theme1";
public string ColorSets = "Visifire1";
public int Marksize = 20;
public int Titlesize = 16;
public int Labelsize = 8;
public int AxisLabelsize = 8;
public string[] Colorarray = new string[] { "ff96f112", "ff048cd8", "fff2b508", "ffc506c5", "ffbe3346", "ffe7f503" };
public bool IsLight = false;
#region 委托及事件
public delegate void SelectControlEventHandler(string labeltext);
public event SelectControlEventHandler SelectControlEvent;
#endregion
public PointDrawing()
{
}
public Chart creatPointChar(string[] textarray, string[] valuearray, string[] legendarray, string titletext)
{
Chart point_chart = new Chart();
try
{
//point_chart.View3D = true;
point_chart.Theme = Themetext;
if (IsLight)
point_chart.LightingEnabled = true;
else
point_chart.LightingEnabled = false;
point_chart.ColorSet = ColorSets;
point_chart.ScrollingEnabled = false;
point_chart.Background = new SolidColorBrush(Colors.Transparent);
point_chart.BorderBrush = new SolidColorBrush(Colors.Transparent);
point_chart.AnimatedUpdate = true;
//标题
Title title = new Title();
title.FontSize = Titlesize;
title.Text = titletext;
point_chart.Titles.Add(title);
Axis x_axis = new Axis();
AxisLabels x_axislabel = new AxisLabels();
x_axislabel.FontSize = AxisLabelsize;
x_axis.AxisLabels = x_axislabel;
ChartGrid chartgrid1 = new ChartGrid();
//chartgrid1.Enabled = true;
//chartgrid1.Interval = 1;
//chartgrid1.LineThickness = 1;
//chartgrid1.LineStyle = LineStyles.Solid;
//x_axis.Grids.Add(chartgrid1);
point_chart.AxesX.Add(x_axis);
Axis y_axis = new Axis();
AxisLabels y_axislabel = new AxisLabels();
y_axislabel.FontSize = AxisLabelsize;
y_axis.AxisLabels = y_axislabel;
//y_axis.Padding = new Thickness(4);
chartgrid1 = new ChartGrid();
chartgrid1.LineThickness = 0.5;
chartgrid1.LineColor = new SolidColorBrush(Colors.Black);
chartgrid1.LineStyle = LineStyles.Solid;
y_axis.Grids.Add(chartgrid1);
//y_axis.AxisLabels = axislabel1;
point_chart.AxesY.Add(y_axis);
PlotArea plotarea = new PlotArea();
plotarea.Background = new SolidColorBrush(Colors.Transparent);
point_chart.PlotArea = plotarea;
int loopcount = legendarray.Length;
int row = valuearray.Length / loopcount;
//第一批
DataSeries dataSeries;
DataPoint dataPoint;
for (int ii = 0; ii < loopcount; ii++)
{
dataSeries = new DataSeries();
//dataSeries.Opacity = 0.8;
dataSeries.RenderAs = RenderAs.Point;
dataSeries.Background = new SolidColorBrush(Colors.Transparent);
dataSeries.LabelEnabled = true;
dataSeries.LabelFontSize = Labelsize;
dataSeries.LabelFontColor = new SolidColorBrush(Colors.White);
dataSeries.LabelFontWeight = FontWeights.Thin;
dataSeries.Color = new SolidColorBrush(ExtendVaules.ReturnColorFromString(Colorarray[(ii) % 6]));
dataSeries.LegendText = legendarray[ii];
switch ((ii+1) % 6)
{
case 1:
dataSeries.MarkerType = MarkerTypes.Circle;
break;
case 2:
dataSeries.MarkerType = MarkerTypes.Triangle;
break;
case 3:
dataSeries.MarkerType = MarkerTypes.Square;
break;
case 4:
dataSeries.MarkerType = MarkerTypes.Diamond;
break;
case 5:
dataSeries.MarkerType = MarkerTypes.Line;
break;
case 6:
dataSeries.MarkerType = MarkerTypes.Cross;
break;
}
//dataSeries.ShadowEnabled = true;
dataSeries.MarkerSize = Marksize;
int step = loopcount - ii;
for (int j = 1; j <= row; j++)
{
dataPoint = new DataPoint();
dataPoint.AxisXLabel = textarray[j * loopcount - step];
dataPoint.XValue = (j * loopcount) - step;
dataPoint.YValue = double.Parse(valuearray[(j * loopcount) - step]);
dataPoint.MouseLeftButtonUp += new MouseButtonEventHandler(dataPoint_MouseLeftButtonUp);
dataSeries.DataPoints.Add(dataPoint);
}
point_chart.Series.Add(dataSeries);
}
}
catch (Exception ex)
{
throw ex;
}
return point_chart;
}
void dataPoint_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
DataPoint dataPoint = sender as DataPoint; if (dataPoint == null) { return; }
if (this.SelectControlEvent != null)
this.SelectControlEvent(dataPoint.XValue + "|" + dataPoint.YValue + "|" + dataPoint.AxisXLabel);
}
}
}
using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Visifire.Charts;
using Visifire.Commons;
namespace ExtendChart
{
public class PyramidDrawing
{
public string Themetext = "Theme1";
public bool Is3D = true;
public bool IsLight = false;
public string Labelfontcolor = "ff000000";
public int Labelfontsize = 10;
public string[] Datapointcolors = null;
public string TitleText = null;
public int Titlesize = 12;
public string Titlefontcolor = "ff000000";
#region 委托及事件
public delegate void SelectControlEventHandler(string labeltext);
public event SelectControlEventHandler SelectControlEvent;
#endregion
public PyramidDrawing()
{
}
public Chart creatpyramid(string[,] valuearray)
{
Chart pyramid_chart = new Chart();
try
{
if (Is3D)
pyramid_chart.View3D = true;
pyramid_chart.Theme = Themetext;
//pyramid_chart.CornerRadius = new CornerRadius(10);
pyramid_chart.Background = new SolidColorBrush(Colors.Transparent);
pyramid_chart.BorderBrush = new SolidColorBrush(Colors.Transparent);
//pyramid_chart.Background = null;
if (IsLight)
pyramid_chart.LightingEnabled = true;
else
pyramid_chart.LightingEnabled = false;
if (TitleText != null)
{
//标题
Title title = new Title();
title.FontColor = new SolidColorBrush(ExtendVaules.ReturnColorFromString(Titlefontcolor));
title.FontSize = Titlesize;
title.FontWeight = FontWeights.Bold;
title.Text = TitleText;
pyramid_chart.Titles.Add(title);
}
标题
//Title title = new Title();
//title.Text = "选择范围区域";
//pyramid_chart.Titles.Add(title);
图例
//Legend lg = new Legend();
//lg.VerticalAlignment = VerticalAlignment.Bottom;
//lg.HorizontalAlignment = HorizontalAlignment.Center;
//lg.FontSize = 10;
//pyramid_chart.Legends.Add(lg);
PlotArea plotarea = new PlotArea();
plotarea.CornerRadius = new CornerRadius(10);
plotarea.Background = new SolidColorBrush(Colors.Transparent);
pyramid_chart.PlotArea = plotarea;
DataSeries dataSeries;
DataPoint dataPoint;
//Y1_1,X
dataSeries = new DataSeries();
dataSeries.ToolTipText = "#AxisXLabel";
dataSeries.RenderAs = RenderAs.Pyramid;
//dataSeries.Opacity = 0.7;
//dataSeries.Bevel = true;
for (int j = 0; j < valuearray.Length / 2; j++)
{
dataPoint = new DataPoint();
if (Datapointcolors != null)
dataPoint.Color = new SolidColorBrush(ExtendVaules.ReturnColorFromString(Datapointcolors[j]));
//dataPoint.MouseLeftButtonUp += new MouseButtonEventHandler(dataPoint_MouseLeftButtonUp);
dataPoint.MouseLeftButtonUp += new MouseButtonEventHandler(dataPoint_MouseLeftButtonUp);
dataPoint.LabelFontSize = Labelfontsize;
dataPoint.AxisXLabel = valuearray[j,0];
dataPoint.LabelFontColor = new SolidColorBrush(ExtendVaules.ReturnColorFromString(Labelfontcolor));
dataPoint.YValue = double.Parse(valuearray[j,1]);
dataSeries.DataPoints.Add(dataPoint);
}
pyramid_chart.Series.Add(dataSeries);
}
catch (Exception ex)
{
throw ex;
}
return pyramid_chart;
}
void dataPoint_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
DataPoint dataPoint = sender as DataPoint; if (dataPoint == null) { return; }
if (dataPoint.Exploded == true)
dataPoint.Exploded = false;
else
//if (dataPoint.Exploded != true)
dataPoint.Exploded = true;
if (this.SelectControlEvent != null)
this.SelectControlEvent(dataPoint.YValue + "|" + dataPoint.AxisXLabel);
}
}
}
using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Visifire.Charts;
using Visifire.Commons;
namespace ExtendChart
{
public class SequenceDrawing
{
public string Themetext = "Theme1";
public string ColorSets = "Visifire1";
public int Marksize = 26;
public int Labelsize = 14;
public int AxisLabelsize = 4;
public bool IsLight = false;
public SequenceDrawing()
{
}
public Chart creatSequence(string[,] valuearray,int min,int max)
{
Chart sequence_chart = new Chart();
try
{
sequence_chart.View3D = true;
//sequence_chart.ZoomingEnabled = true;
//sequence_chart.ZoomOutText = "ZoomOut";
if (IsLight)
sequence_chart.LightingEnabled = true;
else
sequence_chart.LightingEnabled = false;
sequence_chart.Theme = Themetext;
sequence_chart.ColorSet = ColorSets;
sequence_chart.Background = new SolidColorBrush(Colors.Transparent);
sequence_chart.BorderBrush = new SolidColorBrush(Colors.Transparent);
// <vc:Axis.AxisLabels>
// <vc:AxisLabels Angle="-90" Rows="1"/>
//</vc:Axis.AxisLabels>
Axis x_axis = new Axis();
AxisLabels x_axislabel = new AxisLabels();
x_axislabel.FontSize = AxisLabelsize;
x_axislabel.FontColor = new SolidColorBrush(ExtendVaules.ReturnColorFromString("CC4C9DC7"));
x_axislabel.Rows = 1;
// x_axislabel.Angle = 90;
x_axis.AxisLabels = x_axislabel;
ChartGrid chartgridx = new ChartGrid();
chartgridx.Enabled = true;
chartgridx.Interval = 1;
chartgridx.LineThickness = 0.5;
chartgridx.LineStyle = LineStyles.Solid;
x_axis.Grids.Add(chartgridx);
sequence_chart.AxesX.Add(x_axis);
Axis y_axis = new Axis();
y_axis.AxisMaximum = max;
y_axis.AxisMinimum = min;
y_axis.Interval = 1;
y_axis.IntervalType = IntervalTypes.Auto;
//y_axis.FontSize = 0.1;
y_axis.ValueFormatString = " ";
y_axis.Ticks.Add(new Visifire.Charts.Ticks { Enabled = false });
AxisLabels y_axislabel = new AxisLabels();
y_axislabel.FontColor = new SolidColorBrush(ExtendVaules.ReturnColorFromString("FFC4EDF6"));
y_axis.AxisLabels = y_axislabel;
CustomAxisLabels cals = new CustomAxisLabels();
cals.FontColor = new SolidColorBrush(ExtendVaules.ReturnColorFromString("FFC4EDF6"));
cals.FontSize = 12;
//CustomAxisLabel cal ;
//int showval = max;
//for (int ii = min; ii <= max; ii++)
//{
// cal = new CustomAxisLabel { From = min.ToString(), To = min.ToString(), Text = showval.ToString() };
// cals.Labels.Add(cal);
// showval--;
//}
CustomAxisLabel cal = new CustomAxisLabel { From = "1", To = "1", Text = "三十三" };
cals.Labels.Add(cal);
cal = new CustomAxisLabel { From = "3", To = "3", Text = "三十一" };
cals.Labels.Add(cal);
//cal = new CustomAxisLabel { From = "4", To = "4", Text = "三十" };
//cals.Labels.Add(cal);
cal = new CustomAxisLabel { From = "5", To = "5", Text = "二十九" };
cals.Labels.Add(cal);
//cal = new CustomAxisLabel { From = "6", To = "6", Text = "二十八" };
//cals.Labels.Add(cal);
cal = new CustomAxisLabel { From = "7", To = "7", Text = "二十七" };
cals.Labels.Add(cal);
//cal = new CustomAxisLabel { From = "8", To = "8", Text = "二十六" };
//cals.Labels.Add(cal);
cal = new CustomAxisLabel { From = "9", To = "9", Text = "二十五" };
cals.Labels.Add(cal);
//cal = new CustomAxisLabel { From = "10", To = "10", Text = "二十四" };
//cals.Labels.Add(cal);
cal = new CustomAxisLabel { From = "11", To = "11", Text = "二十三" };
cals.Labels.Add(cal);
//cal = new CustomAxisLabel { From = "12", To = "12", Text = "二十二" };
//cals.Labels.Add(cal);
cal = new CustomAxisLabel { From = "13", To = "13", Text = "二十一" };
cals.Labels.Add(cal);
//cal = new CustomAxisLabel { From = "14", To = "14", Text = "二十" };
//cals.Labels.Add(cal);
cal = new CustomAxisLabel { From = "15", To = "15", Text = "十九" };
cals.Labels.Add(cal);
//cal = new CustomAxisLabel { From = "16", To = "16", Text = "十八" };
//cals.Labels.Add(cal);
cal = new CustomAxisLabel { From = "17", To = "17", Text = "十七" };
cals.Labels.Add(cal);
//cal = new CustomAxisLabel { From = "18", To = "18", Text = "十六" };
//cals.Labels.Add(cal);
cal = new CustomAxisLabel { From = "19", To = "19", Text = "十五" };
cals.Labels.Add(cal);
//cal = new CustomAxisLabel { From = "20", To = "20", Text = "十四" };
//cals.Labels.Add(cal);
cal = new CustomAxisLabel { From = "21", To = "21", Text = "十三" };
cals.Labels.Add(cal);
//cal = new CustomAxisLabel { From = "22", To = "22", Text = "十二" };
//cals.Labels.Add(cal);
cal = new CustomAxisLabel { From = "23", To = "23", Text = "十一" };
cals.Labels.Add(cal);
//cal = new CustomAxisLabel { From = "24", To = "24", Text = "十" };
//cals.Labels.Add(cal);
cal = new CustomAxisLabel { From = "25", To = "25", Text = "九" };
cals.Labels.Add(cal);
//cal = new CustomAxisLabel { From = "26", To = "26", Text = "八" };
//cals.Labels.Add(cal);
cal = new CustomAxisLabel { From = "27", To = "27", Text = "七" };
cals.Labels.Add(cal);
//cal = new CustomAxisLabel { From = "28", To = "28", Text = "六" };
//cals.Labels.Add(cal);
cal = new CustomAxisLabel { From = "29", To = "29", Text = "五" };
cals.Labels.Add(cal);
//cal = new CustomAxisLabel { From = "30", To = "30", Text = "四" };
//cals.Labels.Add(cal);
cal = new CustomAxisLabel { From = "31", To = "31", Text = "三" };
cals.Labels.Add(cal);
//cal = new CustomAxisLabel { From = "32", To = "32", Text = "二" };
//cals.Labels.Add(cal);
cal = new CustomAxisLabel { From = "33", To = "33", Text = "一" };
cals.Labels.Add(cal);
y_axis.CustomAxisLabels.Add(cals);
//AxisLabels y_axislabel = new AxisLabels();
//y_axislabel.FontSize = AxisLabelsize;
//y_axis.AxisLabels = y_axislabel;
//y_axis.Padding = new Thickness(1);
ChartGrid chartgridy = new ChartGrid();
chartgridy.Enabled = true;
chartgridy.Interval = 1;
chartgridy.LineThickness = 0.5;
//chartgridy.LineColor = new SolidColorBrush(ExtendVaules.ReturnColorFromString);
chartgridy.LineStyle = LineStyles.Solid;
y_axis.Grids.Add(chartgridy);
//y_axis.AxisLabels = axislabel1;
sequence_chart.AxesY.Add(y_axis);
//画领先线
TrendLine trendline1 = new TrendLine();
trendline1.Value = 31;
trendline1.Orientation = Orientation.Horizontal;
trendline1.AxisType = AxisTypes.Primary;
trendline1.LineThickness = 8;
trendline1.LineStyle = LineStyles.Solid;
trendline1.LabelText = "领先线";
trendline1.LabelFontWeight = FontWeights.Bold;
trendline1.LabelFontSize = 14;
trendline1.LineColor = new SolidColorBrush(ExtendVaules.ReturnColorFromString("fffde101"));
sequence_chart.TrendLines.Add(trendline1);
//画平均线
TrendLine trendline2 = new TrendLine();
trendline2.Value = 16;
trendline2.Orientation = Orientation.Horizontal;
trendline2.AxisType = AxisTypes.Primary;
trendline2.LineThickness = 8;
trendline2.LineStyle = LineStyles.Solid;
trendline2.LabelText = "平均线";
trendline2.LabelFontWeight = FontWeights.Bold;
trendline2.LabelFontSize = 14;
trendline2.LineColor = new SolidColorBrush(ExtendVaules.ReturnColorFromString("ffc31b00"));
sequence_chart.TrendLines.Add(trendline2);
//TrendLine trendline1 = new TrendLine();
//trendline1.Value = double.Parse("19");
//trendline1.Orientation = Orientation.Horizontal;
//trendline1.LineThickness = 2;
//trendline1.LineColor = new SolidColorBrush(ExtendVaules.ReturnColorFromString("#fffde101"));
PlotArea plotarea = new PlotArea();
plotarea.ShadowEnabled = true;
plotarea.Background = new SolidColorBrush(Colors.Transparent);
sequence_chart.PlotArea = plotarea;
DataSeries dataSeries;
DataPoint dataPoint;
int row = valuearray.Length / 3;
dataSeries = new DataSeries();
dataSeries.RenderAs = RenderAs.Point;
dataSeries.Background = new SolidColorBrush(Colors.Transparent);
// ToolTipText="#AxisXLabel"
dataSeries.ToolTipText = "#AxisXLabel";
dataSeries.LabelEnabled = true;
dataSeries.LabelFontSize = Labelsize;
dataSeries.LabelFontColor = new SolidColorBrush(Colors.White);
dataSeries.LabelAngle = -90;
dataSeries.LabelFontWeight = FontWeights.Thin;
//dataSeries.Color = new SolidColorBrush(ExtendVaules.ReturnColorFromString(Colorarray[(ii) % 6]));
// dataSeries.LegendText = legendarray[ii];
//dataSeries.MarkerType = MarkerTypes.Square;
dataSeries.MarkerSize = Marksize;
//int step = loopcount - ii;
for (int j = 0; j < row; j++)
{
dataPoint = new DataPoint();
dataPoint.AxisXLabel = "第" + valuearray[j, 2] + "名\r\n" + valuearray[j, 0];
dataPoint.XValue = j + 1;
dataPoint.LabelText = "\r\n 第" + valuearray[j, 2] + "名" + "\r\n" + valuearray[j, 0] ;
dataPoint.YValue = double.Parse(valuearray[j,1]);
//dataPoint.MouseLeftButtonUp += new MouseButtonEventHandler(dataPoint_MouseLeftButtonUp);
dataSeries.DataPoints.Add(dataPoint);
}
sequence_chart.Series.Add(dataSeries);
}
catch (Exception ex)
{
throw ex;
}
return sequence_chart;
}
}
}
using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Visifire.Charts;
using Visifire.Commons;
namespace ExtendChart
{
public class DoughnutDrawing
{
public string Themetext = "Theme1";
public int AxisLabelsize = 16;
public int Titlesize = 14;
public string ColorSets = "Visifire1";
public int Lablefontsize = 14;
public string Labelfontcolor = "ff000000";
public string[] Datapointcolors = null;
public string Titlefontcolor = "ff000000";
#region 委托及事件
public delegate void SelectControlEventHandler(string labeltext);
public event SelectControlEventHandler SelectControlEvent;
#endregion
public DoughnutDrawing()
{
}
public Chart creatDoughnut(string[,] valuearray, string titletext)
{
Chart doughnut_chart = new Chart();
try
{
doughnut_chart.View3D = true;
doughnut_chart.Theme = Themetext;
doughnut_chart.ColorSet = ColorSets;
doughnut_chart.Bevel = false;
doughnut_chart.Background = new SolidColorBrush(Colors.Transparent);
doughnut_chart.BorderBrush = new SolidColorBrush(Colors.Transparent);
doughnut_chart.LightingEnabled = false;
doughnut_chart.BorderThickness = new Thickness(0.5);
//标题
if (titletext != null)
{
Title title = new Title();
title.FontSize = Titlesize;
title.FontColor = new SolidColorBrush(ExtendVaules.ReturnColorFromString(Titlefontcolor));
// title.FontStyle = new FontStyle
title.FontWeight = FontWeights.Bold;
title.Text = titletext;
doughnut_chart.Titles.Add(title);
}
int row = valuearray.Length / 2;
//第一批
DataSeries dataSeries;
DataPoint dataPoint;
dataSeries = new DataSeries();
dataSeries.RenderAs = RenderAs.Doughnut;
//dataSeries.Opacity = 0.7;
//dataSeries.ShowInLegend = true;
//dataSeries.Bevel = true;
dataSeries.LabelText = "#AxisXLabel, #YValue";
dataSeries.ShadowEnabled = true;
for (int j = 0; j < row; j++)
{
dataPoint = new DataPoint();
if (Datapointcolors != null)
dataPoint.Color = new SolidColorBrush(ExtendVaules.ReturnColorFromString(Datapointcolors[j]));
dataPoint.AxisXLabel = valuearray[j, 0];
dataPoint.LabelFontSize = Lablefontsize;
dataPoint.LabelFontColor = new SolidColorBrush(ExtendVaules.ReturnColorFromString(Labelfontcolor));
dataPoint.LabelLineThickness = 1.5;
dataPoint.YValue = double.Parse(valuearray[j, 1]);
dataPoint.MouseLeftButtonUp += new MouseButtonEventHandler(dataPoint_MouseLeftButtonUp);
dataSeries.DataPoints.Add(dataPoint);
}
doughnut_chart.Series.Add(dataSeries);
}
catch (Exception ex)
{
throw ex;
}
return doughnut_chart;
}
void dataPoint_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
DataPoint dataPoint = sender as DataPoint; if (dataPoint == null) { return; }
if (dataPoint.Exploded == true)
dataPoint.Exploded = false;
else
dataPoint.Exploded = true;
//MessageBox.Show(dataPoint.AxisXLabel);
if (this.SelectControlEvent != null)
this.SelectControlEvent(dataPoint.AxisXLabel);
}
}
}
using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Visifire.Charts;
using Visifire.Commons;
namespace ExtendChart
{
public class SplineCharts
{
public string Themetext = "Theme1";
public int Labelsize = 12;
public int AxisLabelsize = 14;
public int Titlesize = 16;
public string DefaultColorsets = "Visifire1";
public int AxisTitlesize = 14;
public string AxisLabelfontcolor = "ff000000";
public string Titlefontcolor = "ff000000";
public string AxisTitlefontcolor = "ff000000";
public int AxisTitlefontsize = 14;
public string Labelfontcolor = "ff000000";
public double CornerRadius = 7;
public int Padding = 6;
public bool Is3D = true;
public bool IsLight = false;
#region 委托及事件
public delegate void SelectControlEventHandler(string labeltext);
public event SelectControlEventHandler SelectControlEvent;
#endregion
public Chart creatsplinechart(string[,] valuearray, string[] legendarray, string titletext, string xaxistitle, string yaxistitle)
{
Chart splinechart = new Chart();
try
{
//Theme="Theme1" CornerRadius="7" AnimatedUpdate="true"
if (Is3D)
splinechart.View3D = true;
splinechart.Theme = Themetext;
splinechart.ColorSet = DefaultColorsets;
splinechart.Background = new SolidColorBrush(Colors.Transparent);
splinechart.BorderBrush = new SolidColorBrush(Colors.Transparent);
splinechart.Padding = new Thickness(Padding);
splinechart.BorderThickness = new Thickness(0);
splinechart.IndicatorEnabled = true;
splinechart.CornerRadius = new CornerRadius(CornerRadius);
if (titletext != null)
{
//标题
Title title = new Title();
title.FontColor = new SolidColorBrush(ExtendVaules.ReturnColorFromString(Titlefontcolor));
title.FontSize = Titlesize;
title.Text = titletext;
splinechart.Titles.Add(title);
}
// <vc:Chart.AxesX>
// <vc:Axis Padding="4"/>
//</vc:Chart.AxesX>
Axis x_axis = new Axis();
if (xaxistitle != null)
{
x_axis.Title = xaxistitle;
x_axis.TitleFontColor = new SolidColorBrush(ExtendVaules.ReturnColorFromString(AxisTitlefontcolor));
x_axis.TitleFontSize = AxisTitlefontsize;
}
//AxisLabels x_axislabel = new AxisLabels();
//x_axislabel.FontColor = new SolidColorBrush(ExtendVaules.ReturnColorFromString(AxisLabelfontcolor));
//x_axislabel.FontSize = AxisLabelsize;
//x_axis.AxisLabels = x_axislabel;
//splinechart.AxesX.Add(x_axis);
//Axis y_axis = new Axis();
//if (yaxistitle != null)
//{
// y_axis.Title = yaxistitle;
// y_axis.TitleFontColor = new SolidColorBrush(ExtendVaules.ReturnColorFromString(AxisTitlefontcolor));
// y_axis.TitleFontSize = AxisTitlefontsize;
//}
//AxisLabels y_axislabel = new AxisLabels();
//y_axislabel.FontColor = new SolidColorBrush(ExtendVaules.ReturnColorFromString(AxisLabelfontcolor));
//y_axislabel.FontSize = AxisLabelsize;
//y_axis.AxisLabels = y_axislabel;
//splinechart.AxesY.Add(y_axis);
// <vc:Chart.PlotArea>
// <vc:PlotArea ShadowEnabled="false"></vc:PlotArea>
//</vc:Chart.PlotArea>
PlotArea plotarea = new PlotArea();
plotarea.Background = new SolidColorBrush(Colors.Transparent);
plotarea.ShadowEnabled = false;
splinechart.PlotArea = plotarea;
DataSeries dataSeries;
DataPoint dataPoint;
int loopcount = legendarray.Length;
int col = loopcount + 1;
int row = valuearray.Length / col;
for (int ii = 0; ii < loopcount; ii++)
{
dataSeries = new DataSeries();
dataSeries.LegendText = legendarray[ii];
dataSeries.RenderAs = RenderAs.Column;
dataSeries.LabelEnabled = true;
dataSeries.LabelFontSize = Labelsize;
double yval;
for (int j = 0; j < row; j++)
{
yval = double.Parse(valuearray[j, ii + 1]);
dataPoint = new DataPoint();
dataPoint.AxisXLabel = valuearray[j, 0];
dataPoint.YValue = yval;
dataPoint.LabelFontColor = new SolidColorBrush(ExtendVaules.ReturnColorFromString(Labelfontcolor));
dataPoint.MouseLeftButtonUp += new MouseButtonEventHandler(dataPoint_MouseLeftButtonUp);
dataSeries.DataPoints.Add(dataPoint);
}
splinechart.Series.Add(dataSeries);
}
}
catch (Exception ex)
{
throw ex;
}
return splinechart;
}
void dataPoint_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
DataPoint dataPoint = sender as DataPoint; if (dataPoint == null) { return; }
if (this.SelectControlEvent != null)
this.SelectControlEvent(dataPoint.AxisXLabel);
}
}
}
using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Visifire.Commons;
using Visifire.Gauges;
namespace ExtendChart
{
public class GaugeDrawing
{
public int GaugeBackgroundType = 0;
public GaugeDrawing()
{
}
public Gauge creatgauge(double val)
{
Gauge gauge1 = new Gauge();
try
{
switch(GaugeBackgroundType)
{
case 1:
//仪表盘背景色设置
RadialGradientBrush rgb = new RadialGradientBrush { GradientOrigin = new Point(0.5, 0.2), RadiusY = 0.5 };
rgb.GradientStops.Add(new GradientStop { Offset = 0, Color = ExtendChart.ExtendVaules.ReturnColorFromString("ff1495ba") });
rgb.GradientStops.Add(new GradientStop { Offset = 0.8, Color = ExtendChart.ExtendVaules.ReturnColorFromString("ff0a485a") });
rgb.GradientStops.Add(new GradientStop { Offset = 1, Color = ExtendChart.ExtendVaules.ReturnColorFromString("ff062e39") });
gauge1.Background = rgb;
break;
}
NeedleIndicator ni = new NeedleIndicator();
ni.Value = val;
gauge1.Indicators.Add(ni);
BarIndicator bi = new BarIndicator();
bi.Value = val;
gauge1.Indicators.Add(bi);
}
catch (Exception ex)
{
throw ex;
}
return gauge1;
}
}
}
using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Visifire.Charts;
using Visifire.Commons;
namespace ExtendChart
{
public class MultiLineDrawing
{
public string Themetext = "Theme1";
public int Labelsize = 12;
public int AxisLabelsize = 14;
public int Titlesize = 16;
public string DefaultColorsets = "Visifire1";
public int AxisTitlesize = 14;
public string AxisLabelfontcolor = "ff000000";
public string Titlefontcolor = "ff000000";
public string AxisTitlefontcolor = "ff000000";
public int AxisTitlefontsize = 14;
public string Labelfontcolor = "ff000000";
public string[] Colorarray = new string[] { "ff96f112", "ff048cd8", "ffc506c5", "ffbe3346", "fff2b508", "ffe7f503" };
public bool Is3D = true;
public bool IsLight = false;
#region 委托及事件
public delegate void SelectControlEventHandler(string labeltext);
public event SelectControlEventHandler SelectControlEvent;
#endregion
public MultiLineDrawing()
{
}
public Chart creatline(string[,] valuearray, string[] legendarray, string titletext, string xaxistitle, string yaxistitle)
{
Chart line_chart = new Chart();
try
{
//Theme="Theme1" BorderBrush="Gray" Padding="6" IndicatorEnabled="True">
//if (Is3D)
// line_chart.View3D = true;
line_chart.Theme = Themetext;
line_chart.ColorSet = DefaultColorsets;
line_chart.Background = new SolidColorBrush(Colors.Transparent);
line_chart.BorderBrush = new SolidColorBrush(Colors.Transparent);
line_chart.IndicatorEnabled = true;
line_chart.BorderThickness = new Thickness(0);
if (titletext != null)
{
//标题
Title title = new Title();
title.FontColor = new SolidColorBrush(ExtendVaules.ReturnColorFromString(Titlefontcolor));
title.FontSize = Titlesize;
title.Text = titletext;
title.FontWeight = FontWeights.ExtraBlack;
line_chart.Titles.Add(title);
}
Axis x_axis = new Axis();
if (xaxistitle != null)
{
x_axis.Title = xaxistitle;
x_axis.TitleFontColor = new SolidColorBrush(ExtendVaules.ReturnColorFromString(AxisTitlefontcolor));
x_axis.TitleFontSize = AxisTitlefontsize;
}
AxisLabels x_axislabel = new AxisLabels();
x_axislabel.FontColor = new SolidColorBrush(ExtendVaules.ReturnColorFromString(AxisLabelfontcolor));
x_axislabel.FontSize = AxisLabelsize;
x_axis.AxisLabels = x_axislabel;
line_chart.AxesX.Add(x_axis);
Axis y_axis = new Axis();
if (yaxistitle != null)
{
y_axis.Title = yaxistitle;
y_axis.TitleFontColor = new SolidColorBrush(ExtendVaules.ReturnColorFromString(AxisTitlefontcolor));
y_axis.TitleFontSize = AxisTitlefontsize;
}
AxisLabels y_axislabel = new AxisLabels();
y_axislabel.FontColor = new SolidColorBrush(ExtendVaules.ReturnColorFromString(AxisLabelfontcolor));
y_axislabel.FontSize = AxisLabelsize;
y_axis.AxisLabels = y_axislabel;
line_chart.AxesY.Add(y_axis);
PlotArea plotarea = new PlotArea();
plotarea.ShadowEnabled = true;
plotarea.CornerRadius = new CornerRadius(10);
plotarea.Background = new SolidColorBrush(Colors.Transparent);
line_chart.PlotArea = plotarea;
DataSeries dataSeries;
DataPoint dataPoint;
int loopcount = legendarray.Length;
int col = loopcount + 1;
int row = valuearray.Length / col;
for (int ii = 0; ii < loopcount; ii++)
{
dataSeries = new DataSeries();
dataSeries.LegendText = legendarray[ii];
//Legend legend1 = new Legend();
//legend1.
dataSeries.RenderAs = RenderAs.Line;
dataSeries.MarkerType = MarkerTypes.Circle;
//dataSeries.LabelEnabled = true;
dataSeries.SelectionEnabled = true;
//dataSeries.ToolTipText = "#AxisXLabel的#LegendText: #YValue";
dataSeries.ToolTipText = "#LegendText: #YValue";
dataSeries.LineThickness = 3;
dataSeries.LabelFontSize = Labelsize;
dataSeries.Color = new SolidColorBrush(ExtendVaules.ReturnColorFromString(Colorarray[(ii) % 6]));
double yval;
for (int j = 0; j < row; j++)
{
yval = double.Parse(valuearray[j, ii + 1]);
//yval = double.Parse(valuearray[ii, j + 1]);
dataPoint = new DataPoint();
dataPoint.YValue = yval;
dataPoint.AxisXLabel = valuearray[j,0];
//dataPoint.LabelText = valuearray[j, ii];
dataPoint.LabelFontColor = new SolidColorBrush(ExtendVaules.ReturnColorFromString(Labelfontcolor));
dataPoint.MouseLeftButtonUp += new MouseButtonEventHandler(dataPoint_MouseLeftButtonUp);
dataSeries.DataPoints.Add(dataPoint);
}
line_chart.Series.Add(dataSeries);
}
}
catch (Exception ex)
{
throw ex;
}
return line_chart;
}
void dataPoint_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
DataPoint dataPoint = sender as DataPoint;
if (dataPoint == null) { return; }
if (this.SelectControlEvent != null)
this.SelectControlEvent(dataPoint.AxisXLabel);
}
}
}
using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Visifire.Charts;
using Visifire.Commons;
namespace ExtendChart
{
public class Stackeds
{
public string Themetext = "Theme1";
public int Labelsize = 12;
public int AxisLabelsize = 14;
public int Titlesize = 16;
public string DefaultColorsets = "Visifire1";
public int AxisTitlesize = 14;
public bool Is3D = true;
public bool IsLight = false;
public bool IsBar100 = true;
public string[] Colorarray = null;
#region 委托及事件
public delegate void SelectControlEventHandler(string labeltext);
public event SelectControlEventHandler SelectControlEvent;
#endregion
public Stackeds()
{
}
/*
public Chart Create_stackchar(string[] legendarray, string[,] valuearray,string[] colorarray)
{
Chart stack_chart = new Chart();
try
{
if (Is3D)
stack_chart.View3D = true;
stack_chart.Theme = Themetext;
stack_chart.ColorSet = DefaultColorsets;
stack_chart.Background = new SolidColorBrush(Colors.Transparent);
stack_chart.BorderBrush = new SolidColorBrush(Colors.Transparent);
stack_chart.BorderThickness = new Thickness(0);
if (IsLight)
stack_chart.LightingEnabled = true;
else
stack_chart.LightingEnabled = false;
Axis x_axis = new Axis();
AxisLabels x_axislabel = new AxisLabels();
x_axislabel.FontSize = AxisLabelsize;
x_axis.AxisLabels = x_axislabel;
stack_chart.AxesX.Add(x_axis);
Axis y_axis = new Axis();
AxisLabels y_axislabel = new AxisLabels();
y_axislabel.FontSize = AxisLabelsize;
y_axis.AxisLabels = y_axislabel;
stack_chart.AxesY.Add(y_axis);
DataSeries dataSeries;
DataPoint dataPoint;
int loopcount = legendarray.Length;
int col = loopcount + 1;
int row = valuearray.Length / col;
for (int ii = 0; ii < loopcount; ii++)
{
dataSeries = new DataSeries();
dataSeries.Opacity = 0.9;
dataSeries.LegendText = legendarray[ii];
dataSeries.RenderAs = RenderAs.StackedBar100;
dataSeries.Color = new SolidColorBrush(ExtendVaules.ReturnColorFromString(colorarray[ii]));
dataSeries.LabelEnabled = true;
dataSeries.LabelFontSize = Labelsize;
for (int j = 0; j < row; j++)
{
dataPoint = new DataPoint();
//if (ii == 0)
dataPoint.AxisXLabel = valuearray[j, 0];
dataPoint.YValue = double.Parse(valuearray[j, ii + 1]);
dataPoint.LabelFontColor = new SolidColorBrush(Colors.Black);
dataPoint.MouseLeftButtonUp += new MouseButtonEventHandler(dataPoint_MouseLeftButtonUp);
dataSeries.DataPoints.Add(dataPoint);
}
stack_chart.Series.Add(dataSeries);
}
}
catch(Exception ex)
{
throw ex;
}
return stack_chart;
}
public Chart Create_stackchar(string[] legendarray, string[,] valuearray, string[] colorarray, string titletext)
{
Chart stack_chart = new Chart();
try
{
stack_chart.View3D = true;
stack_chart.Theme = Themetext;
stack_chart.ColorSet = DefaultColorsets;
stack_chart.Background = new SolidColorBrush(Colors.Transparent);
stack_chart.BorderBrush = new SolidColorBrush(Colors.Transparent);
stack_chart.BorderThickness = new Thickness(0);
Axis x_axis = new Axis();
AxisLabels x_axislabel = new AxisLabels();
x_axislabel.FontSize = AxisLabelsize;
x_axis.AxisLabels = x_axislabel;
stack_chart.AxesX.Add(x_axis);
Axis y_axis = new Axis();
AxisLabels y_axislabel = new AxisLabels();
y_axislabel.FontSize = AxisLabelsize;
y_axis.AxisLabels = y_axislabel;
stack_chart.AxesY.Add(y_axis);
//标题
Title title = new Title();
title.FontSize = Titlesize;
title.Text = titletext;
stack_chart.Titles.Add(title);
DataSeries dataSeries;
DataPoint dataPoint;
int loopcount = legendarray.Length;
int col = loopcount + 1;
int row = valuearray.Length / col;
for (int ii = 0; ii < loopcount; ii++)
{
dataSeries = new DataSeries();
dataSeries.Opacity = 0.9;
dataSeries.LegendText = legendarray[ii];
if (IsBar100)
dataSeries.RenderAs = RenderAs.StackedBar100;
else
dataSeries.RenderAs = RenderAs.StackedBar;
dataSeries.Color = new SolidColorBrush(ExtendVaules.ReturnColorFromString(colorarray[ii]));
dataSeries.LabelEnabled = true;
dataSeries.LabelFontSize = Labelsize;
for (int j = 0; j < row; j++)
{
dataPoint = new DataPoint();
if (ii == 0)
dataPoint.AxisXLabel = valuearray[j, 0];
dataPoint.YValue = double.Parse(valuearray[j, ii + 1]);
dataPoint.LabelFontColor = new SolidColorBrush(Colors.Black);
dataPoint.MouseLeftButtonUp +=new MouseButtonEventHandler(dataPoint_MouseLeftButtonUp);
dataSeries.DataPoints.Add(dataPoint);
}
stack_chart.Series.Add(dataSeries);
}
}
catch (Exception ex)
{
throw ex;
}
return stack_chart;
}
*/
public Chart Create_stackchar(string[] legendarray, string[,] valuearray,string titletext, string xaxistitle, string yaxistitle)
{
Chart stack_chart = new Chart();
try
{
if (Is3D)
stack_chart.View3D = true;
stack_chart.Theme = Themetext;
stack_chart.ColorSet = DefaultColorsets;
stack_chart.Background = new SolidColorBrush(Colors.Transparent);
stack_chart.BorderBrush = new SolidColorBrush(Colors.Transparent);
stack_chart.BorderThickness = new Thickness(0);
if (IsLight)
stack_chart.LightingEnabled = true;
else
stack_chart.LightingEnabled = false;
//标题
if (titletext != null)
{
Title title = new Title();
title.FontSize = Titlesize;
title.Text = titletext;
stack_chart.Titles.Add(title);
}
if (xaxistitle != null)
{
Axis x_axis = new Axis();
x_axis.Title = xaxistitle;
x_axis.TitleFontSize = 14;
AxisLabels x_axislabel = new AxisLabels();
x_axislabel.FontSize = AxisLabelsize;
x_axis.AxisLabels = x_axislabel;
stack_chart.AxesX.Add(x_axis);
}
if (yaxistitle != null)
{
Axis y_axis = new Axis();
y_axis.Title = yaxistitle;
y_axis.TitleFontSize = 14;
AxisLabels y_axislabel = new AxisLabels();
y_axislabel.FontSize = AxisLabelsize;
y_axis.AxisLabels = y_axislabel;
stack_chart.AxesY.Add(y_axis);
}
DataSeries dataSeries;
DataPoint dataPoint;
int loopcount = legendarray.Length;
int col = loopcount + 1;
int row = valuearray.Length / col;
for (int ii = 0; ii < loopcount; ii++)
{
dataSeries = new DataSeries();
dataSeries.Opacity = 0.9;
dataSeries.LegendText = legendarray[ii];
if (IsBar100)
dataSeries.RenderAs = RenderAs.StackedBar100;
else
dataSeries.RenderAs = RenderAs.StackedBar;
if (Colorarray != null)
dataSeries.Color = new SolidColorBrush(ExtendVaules.ReturnColorFromString(Colorarray[ii]));
//dataSeries.LabelEnabled = true;
//dataSeries.LabelFontSize = Labelsize;
double val;
for (int j = 0; j < row; j++)
{
dataPoint = new DataPoint();
if (ii == 0)
dataPoint.AxisXLabel = valuearray[j, 0];
val = double.Parse(valuearray[j, ii + 1]);
if (val > 0)
{
dataPoint.YValue = val;
dataPoint.LabelFontColor = new SolidColorBrush(Colors.Black);
dataPoint.MouseLeftButtonUp += new MouseButtonEventHandler(dataPoint_MouseLeftButtonUp);
dataSeries.DataPoints.Add(dataPoint);
}
}
stack_chart.Series.Add(dataSeries);
}
}
catch (Exception ex)
{
throw ex;
}
return stack_chart;
}
void dataPoint_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
DataPoint dataPoint = sender as DataPoint; if (dataPoint == null) { return; }
//if (dataPoint.Exploded == true)
// dataPoint.Exploded = false;
//else
// dataPoint.Exploded = true;
//MessageBox.Show(dataPoint.AxisXLabel);
if (this.SelectControlEvent != null)
this.SelectControlEvent(dataPoint.YValue + "|" + dataPoint.AxisXLabel);
}
}
}
using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Visifire.Charts;
using Visifire.Commons;
namespace ExtendChart
{
public class D2ColumnDrawing
{
public string Themetext = "Theme1";
public int Labelsize = 12;
public int AxisLabelsize = 14;
public int Titlesize = 16;
public string DefaultColorsets = "Visifire1";
public int AxisTitlesize = 14;
public string AxisLabelfontcolor = "ff000000";
public string Titlefontcolor = "ff000000";
public string AxisTitlefontcolor = "ff000000";
public int AxisTitlefontsize = 14;
public string Labelfontcolor = "ff000000";
public bool Is3D = true;
public bool IsLight = false;
#region 委托及事件
public delegate void SelectControlEventHandler(string labeltext);
public event SelectControlEventHandler SelectControlEvent;
#endregion
public Chart creatbar(string[,] valuearray, string titletext)
{
Chart column_chart = new Chart();
try
{
//Theme="Theme1" ShadowEnabled="True" CornerRadius="7,7,0,0" BorderThickness="0.5"
// BorderBrush="Gray" AnimatedUpdate="true" >
if (Is3D)
column_chart.View3D = true;
column_chart.Theme = Themetext;
column_chart.ColorSet = DefaultColorsets;
column_chart.ShadowEnabled = true;
column_chart.Background = new SolidColorBrush(Colors.Transparent);
column_chart.BorderBrush = new SolidColorBrush(Colors.Transparent);
column_chart.BorderThickness = new Thickness(0);
if (titletext != null)
{
//标题
Title title = new Title();
title.FontColor = new SolidColorBrush(ExtendVaules.ReturnColorFromString(Titlefontcolor));
title.FontSize = Titlesize;
title.Text = titletext;
column_chart.Titles.Add(title);
}
Axis x_axis = new Axis();
x_axis.Interval = 2;
//if (xaxistitle != null)
//{
// x_axis.Title = xaxistitle;
// x_axis.TitleFontColor = new SolidColorBrush(ExtendVaules.ReturnColorFromString(AxisTitlefontcolor));
// x_axis.TitleFontSize = AxisTitlefontsize;
//}
AxisLabels x_axislabel = new AxisLabels();
x_axislabel.FontColor = new SolidColorBrush(ExtendVaules.ReturnColorFromString(AxisLabelfontcolor));
x_axislabel.FontSize = AxisLabelsize;
x_axis.AxisLabels = x_axislabel;
column_chart.AxesX.Add(x_axis);
Axis y_axis = new Axis();
//if (yaxistitle != null)
//{
// y_axis.Title = yaxistitle;
// y_axis.TitleFontColor = new SolidColorBrush(ExtendVaules.ReturnColorFromString(AxisTitlefontcolor));
// y_axis.TitleFontSize = AxisTitlefontsize;
//}
AxisLabels y_axislabel = new AxisLabels();
y_axislabel.FontColor = new SolidColorBrush(ExtendVaules.ReturnColorFromString(AxisLabelfontcolor));
y_axislabel.FontSize = AxisLabelsize;
y_axis.AxisLabels = y_axislabel;
column_chart.AxesY.Add(y_axis);
PlotArea plotarea = new PlotArea();
plotarea.ShadowEnabled = true;
plotarea.Background = new SolidColorBrush(Colors.Transparent);
column_chart.PlotArea = plotarea;
DataSeries dataSeries;
DataPoint dataPoint;
//int loopcount = legendarray.Length;
//int col = loopcount + 1;
int col = valuearray.Length / 2;
// <vc:Chart.Series>
// <vc:DataSeries RenderAs="Column" LabelEnabled="True">
// <vc:DataSeries.DataPoints>
// <vc:DataPoint AxisXLabel="USA" YValue="50"/>
// <vc:DataPoint AxisXLabel="China" YValue="35"/>
// <vc:DataPoint AxisXLabel="Russia" YValue="27"/>
// <vc:DataPoint AxisXLabel="Australia" YValue="17"/>
// <vc:DataPoint AxisXLabel="Japan" YValue="16"/>
// </vc:DataSeries.DataPoints>
// </vc:DataSeries>
//</vc:Chart.Series>
//for (int ii = 0; ii < col; ii++)
//{
dataSeries = new DataSeries();
// dataSeries.LegendText = legendarray[ii];
dataSeries.RenderAs = RenderAs.Column;
dataSeries.LabelEnabled = true;
// dataSeries.LabelFontColor =
dataSeries.LabelFontSize = Labelsize;
double yval;
for (int j = 0; j < col; j++)
{
yval = double.Parse(valuearray[j, 1]);
dataPoint = new DataPoint();
dataPoint.AxisXLabel = valuearray[j, 0];
//dataPoint.AxisXLabel.
dataPoint.YValue = yval;
dataPoint.LabelFontColor = new SolidColorBrush(ExtendVaules.ReturnColorFromString(Labelfontcolor));
dataPoint.MouseLeftButtonUp += new MouseButtonEventHandler(dataPoint_MouseLeftButtonUp);
dataSeries.DataPoints.Add(dataPoint);
DataPoint dataPoint1 = new DataPoint();
//dataPoint1.LabelFontColor = new SolidColorBrush(Colors.Transparent);
dataSeries.DataPoints.Add(dataPoint1);
}
column_chart.Series.Add(dataSeries);
//}
}
catch (Exception ex)
{
throw ex;
}
return column_chart;
}
void dataPoint_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
DataPoint dataPoint = sender as DataPoint; if (dataPoint == null) { return; }
if (this.SelectControlEvent != null)
this.SelectControlEvent(dataPoint.AxisXLabel);
}
}
}
using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Visifire.Charts;
using Visifire.Commons;
namespace ExtendChart
{
public class PieDrawing
{
public string Themetext = "Theme1";
public int AxisLabelsize = 16;
public int Titlesize = 16;
public string ColorSets = "Visifire1";
public int Lablefontsize = 12;
public string Labelfontcolor = "ff000000";
public string[] Datapointcolors = null;
public string Titlecolor = "ff000000";
#region 委托及事件
public delegate void SelectControlEventHandler(string labeltext);
public event SelectControlEventHandler SelectControlEvent;
#endregion
public PieDrawing()
{
}
public Chart creatPieChar(string[,] valuearray, string titletext)
{
Chart piechart = new Chart();
try
{
piechart.View3D = true;
piechart.Theme = Themetext;
piechart.ColorSet = ColorSets;
piechart.Bevel = false;
piechart.Background = new SolidColorBrush(Colors.Transparent);
piechart.BorderBrush = new SolidColorBrush(Colors.Transparent);
piechart.LightingEnabled = false;
piechart.BorderThickness = new Thickness(0.5);
//标题
if (titletext != null)
{
Title title = new Title();
title.FontSize = Titlesize;
title.Text = titletext;
title.FontColor = new SolidColorBrush(ExtendVaules.ReturnColorFromString(Titlecolor));
title.FontWeight = FontWeights.ExtraBlack;
piechart.Titles.Add(title);
}
int row = valuearray.Length / 2;
//第一批
DataSeries dataSeries;
DataPoint dataPoint;
dataSeries = new DataSeries();
dataSeries.RenderAs = RenderAs.Pie;
dataSeries.ShowInLegend = true;
dataSeries.Bevel = true;
dataSeries.LabelText = "#AxisXLabel, #YValue";
dataSeries.ShadowEnabled = true;
for (int j = 0; j < row; j++)
{
dataPoint = new DataPoint();
dataPoint.AxisXLabel = valuearray[j,0];
if (Datapointcolors != null)
dataPoint.Color = new SolidColorBrush(ExtendVaules.ReturnColorFromString(Datapointcolors[j]));
dataPoint.LabelFontSize = Lablefontsize;
dataPoint.LabelFontColor = new SolidColorBrush(ExtendVaules.ReturnColorFromString(Labelfontcolor));
dataPoint.LabelLineThickness = 1.5;
dataPoint.YValue = double.Parse(valuearray[j,1]);
dataPoint.MouseLeftButtonUp += new MouseButtonEventHandler(dataPoint_MouseLeftButtonUp);
dataSeries.DataPoints.Add(dataPoint);
}
piechart.Series.Add(dataSeries);
}
catch (Exception ex)
{
throw ex;
}
return piechart;
}
void dataPoint_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
DataPoint dataPoint = sender as DataPoint; if (dataPoint == null) { return; }
if (dataPoint.Exploded == true)
dataPoint.Exploded = false;
else
dataPoint.Exploded = true;
//MessageBox.Show(dataPoint.AxisXLabel);
if (this.SelectControlEvent != null)
this.SelectControlEvent(dataPoint.AxisXLabel);
// return;
}
}
}
using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Visifire.Charts;
using Visifire.Commons;
namespace ExtendChart
{
public class CandleStickDrawing
{
public string Themetext = "Theme1";
public int Labelsize = 12;
public int AxisLabelsize = 14;
public int Titlesize = 16;
public string AxisLabelfontcolor = "ff000000";
public string DefaultColorsets = "Visifire1";
public string Labelfontcolor = "ffffffff";
public int AxisLabeltitlesize = 14;
public int AxisTitlesize = 14;
public bool Is3D = false;
public bool IsLight = false;
public bool IsBar100 = true;
// public string[] Colorarray = null;
public int Labelfontsize = 12;
public string AxisTitlefontcolor = "ff000000";
public int AxisTitlefontsize = 14;
public string TitleFontColor = "ff000000";
// public string[] Colorarray = new string[] { "ff96f112", "ff048cd8", "ffc506c5", "ffbe3346", "fff2b508", "ffe7f503" };
#region 委托及事件
public delegate void SelectControlEventHandler(string labeltext);
public event SelectControlEventHandler SelectControlEvent;
#endregion
public Chart Create_stick1(string[,] valuearray, string titletext, string xaxistitle, string yaxistitle, bool colordirection)
{
Chart stick_chart = new Chart();
try
{
if (Is3D)
stick_chart.View3D = true;
stick_chart.Theme = Themetext;
stick_chart.ColorSet = DefaultColorsets;
//stick_chart.Padding = new Thickness(
stick_chart.Background = new SolidColorBrush(Colors.Transparent);
stick_chart.BorderBrush = new SolidColorBrush(Colors.Transparent);
stick_chart.BorderThickness = new Thickness(0);
if (IsLight)
stick_chart.LightingEnabled = true;
else
stick_chart.LightingEnabled = false;
//标题
if (titletext != null)
{
Title title = new Title();
title.FontSize = Titlesize;
title.FontWeight = FontWeights.ExtraBold;
title.FontColor = new SolidColorBrush(ExtendVaules.ReturnColorFromString(TitleFontColor));
title.Text = titletext;
stick_chart.Titles.Add(title);
}
Axis x_axis = new Axis();
x_axis.Interval = 3;
if (xaxistitle != null)
{
x_axis.Title = xaxistitle;
x_axis.TitleFontColor = new SolidColorBrush(ExtendVaules.ReturnColorFromString(AxisTitlefontcolor));
x_axis.TitleFontSize = AxisTitlefontsize;
}
// x_axis.Padding = new Thickness(10);
AxisLabels x_axislabel = new AxisLabels();
x_axislabel.FontColor = new SolidColorBrush(ExtendVaules.ReturnColorFromString(AxisLabelfontcolor));
//x_axislabel.FontColor = new SolidColorBrush(Colors.Transparent);
x_axislabel.FontSize = AxisLabelsize;
x_axis.AxisLabels = x_axislabel;
stick_chart.AxesX.Add(x_axis);
Axis y_axis = new Axis();
if (yaxistitle != null)
{
y_axis.Title = yaxistitle;
y_axis.TitleFontColor = new SolidColorBrush(ExtendVaules.ReturnColorFromString(AxisTitlefontcolor));
y_axis.TitleFontSize = AxisTitlefontsize;
}
//y_axis.Padding = new Thickness(20);
AxisLabels y_axislabel = new AxisLabels();
y_axislabel.FontColor = new SolidColorBrush(ExtendVaules.ReturnColorFromString(AxisLabelfontcolor));
y_axislabel.FontSize = AxisLabelsize;
y_axis.AxisLabels = y_axislabel;
stick_chart.AxesY.Add(y_axis);
PlotArea plotarea = new PlotArea();
plotarea.ShadowEnabled = true;
plotarea.CornerRadius = new CornerRadius(5, 5, 0, 0);
plotarea.BorderThickness = new Thickness(1);
plotarea.Background = new SolidColorBrush(Colors.Transparent);
stick_chart.PlotArea = plotarea;
DataSeries dataSeries;
DataPoint dataPoint;
int col = valuearray.Length / 3;
dataSeries = new DataSeries();
dataSeries.RenderAs = RenderAs.CandleStick;
// dataSeries.Color = new SolidColorBrush(ExtendVaules.ReturnColorFromString(Colorarray[1]));
//PriceDownColor="Tomato" PriceUpColor="Gray">
if (colordirection)
{
dataSeries.PriceDownColor = new SolidColorBrush(Colors.Red);
dataSeries.PriceUpColor = new SolidColorBrush(Colors.Green);
}
else
{
dataSeries.PriceDownColor = new SolidColorBrush(Colors.Green);
dataSeries.PriceUpColor = new SolidColorBrush(Colors.Red);
}
dataSeries.ToolTipText = "#AxisXLabel";
double val1, val2,min,max;
for (int j = 0; j < col; j++)
{
dataPoint = new DataPoint();
dataPoint.AxisXLabel = valuearray[j, 0];
val1 = double.Parse(valuearray[j,1]);
val2 = double.Parse(valuearray[j,2]);
if (val1 > val2)
{
max = val1;
min = val2;
}
else
{
max = val2;
min = val1;
}
//dataPoint.AxisXLabel.
dataPoint.YValues = new double[] { val1, val2, max, min };
dataPoint.LabelText = valuearray[j, 0];
//dataPoint.LabelFontColor = new SolidColorBrush(ExtendVaules.ReturnColorFromString(Labelfontcolor));
dataPoint.MouseLeftButtonUp += new MouseButtonEventHandler(dataPoint_MouseLeftButtonUp);
dataPoint.LabelFontColor = new SolidColorBrush(Colors.Transparent);
// dataPoint.StickColor = new SolidColorBrush(ExtendVaules.ReturnColorFromString(Colorarray[0]));
dataSeries.DataPoints.Add(dataPoint);
DataPoint dataPoint1 = new DataPoint();
//dataPoint1.LabelFontColor = new SolidColorBrush(Colors.Transparent);
dataSeries.DataPoints.Add(dataPoint1);
DataPoint dataPoint2 = new DataPoint();
//dataPoint2.LabelFontColor = new SolidColorBrush(Colors.Transparent);
dataSeries.DataPoints.Add(dataPoint2);
}
stick_chart.Series.Add(dataSeries);
//}
}
catch (Exception ex)
{
throw ex;
}
return stick_chart;
}
void dataPoint_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
DataPoint dataPoint = sender as DataPoint; if (dataPoint == null) { return; }
if (this.SelectControlEvent != null)
this.SelectControlEvent(dataPoint.AxisXLabel);
}
}
}
using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
using Visifire.Charts;
using Visifire.Commons;
namespace ExtendChart
{
public class BarDrawing
{
public string Themetext = "Theme1";
public int Labelsize = 12;
public int AxisLabelsize = 14;
public int Titlesize = 16;
public string DefaultColorsets = "Visifire1";
public int AxisTitlesize = 14;
public string AxisLabelfontcolor = "ff000000";
public string Titlefontcolor = "ff000000";
public string AxisTitlefontcolor = "ff000000";
public int AxisTitlefontsize = 14;
public string Labelfontcolor = "ff000000";
public bool Is3D = true;
public bool IsLight = false;
#region 委托及事件
public delegate void SelectControlEventHandler(string labeltext);
public event SelectControlEventHandler SelectControlEvent;
#endregion
public BarDrawing()
{
}
public Chart creatbar(string[,] valuearray, string[] legendarray, string titletext, string xaxistitle, string yaxistitle)
{
Chart bar_chart = new Chart();
try
{
if (Is3D)
bar_chart.View3D = true;
bar_chart.Theme = Themetext;
bar_chart.ColorSet = DefaultColorsets;
bar_chart.Background = new SolidColorBrush(Colors.Transparent);
bar_chart.BorderBrush = new SolidColorBrush(Colors.Transparent);
bar_chart.BorderThickness = new Thickness(0);
if (titletext != null)
{
//标题
Title title = new Title();
title.FontColor = new SolidColorBrush(ExtendVaules.ReturnColorFromString(Titlefontcolor));
title.FontSize = Titlesize;
title.Text = titletext;
bar_chart.Titles.Add(title);
}
Axis x_axis = new Axis();
if (xaxistitle != null)
{
x_axis.Title = xaxistitle;
x_axis.TitleFontColor = new SolidColorBrush(ExtendVaules.ReturnColorFromString(AxisTitlefontcolor));
x_axis.TitleFontSize = AxisTitlefontsize;
}
AxisLabels x_axislabel = new AxisLabels();
x_axislabel.FontColor = new SolidColorBrush(ExtendVaules.ReturnColorFromString(AxisLabelfontcolor));
x_axislabel.FontSize = AxisLabelsize;
x_axis.AxisLabels = x_axislabel;
bar_chart.AxesX.Add(x_axis);
Axis y_axis = new Axis();
if (yaxistitle != null)
{
y_axis.Title = yaxistitle;
y_axis.TitleFontColor = new SolidColorBrush(ExtendVaules.ReturnColorFromString(AxisTitlefontcolor));
y_axis.TitleFontSize = AxisTitlefontsize;
}
AxisLabels y_axislabel = new AxisLabels();
y_axislabel.FontColor = new SolidColorBrush(ExtendVaules.ReturnColorFromString(AxisLabelfontcolor));
y_axislabel.FontSize = AxisLabelsize;
y_axis.AxisLabels = y_axislabel;
bar_chart.AxesY.Add(y_axis);
DataSeries dataSeries;
DataPoint dataPoint;
int loopcount = legendarray.Length;
int col = loopcount + 1;
int row = valuearray.Length / col;
for (int ii = 0; ii < loopcount; ii++)
{
dataSeries = new DataSeries();
//dataSeries.Opacity = 0.9;
dataSeries.LegendText = legendarray[ii];
dataSeries.RenderAs = RenderAs.Column;
//dataSeries.Color = new SolidColorBrush(Colors.Green);
dataSeries.LabelEnabled = true;
//dataSeries.LabelFontColor = new SolidColorBrush(Colors.Green);
dataSeries.LabelFontSize = Labelsize;
double yval;
for (int j = 0; j < row; j++)
{
yval = double.Parse(valuearray[j, ii + 1]);
dataPoint = new DataPoint();
//if (yval != 0)
//{
dataPoint.AxisXLabel = valuearray[j, 0];
//}
dataPoint.YValue = yval;
dataPoint.LabelFontColor = new SolidColorBrush(ExtendVaules.ReturnColorFromString(Labelfontcolor));
dataPoint.MouseLeftButtonUp += new MouseButtonEventHandler(dataPoint_MouseLeftButtonUp);
//}
dataSeries.DataPoints.Add(dataPoint);
}
bar_chart.Series.Add(dataSeries);
}
}
catch (Exception ex)
{
throw ex;
}
return bar_chart;
}
void dataPoint_MouseLeftButtonUp(object sender, MouseButtonEventArgs e)
{
DataPoint dataPoint = sender as DataPoint; if (dataPoint == null) { return; }
if (this.SelectControlEvent != null)
this.SelectControlEvent(dataPoint.AxisXLabel);
}
}
}
公共类:
using System;
using System.Net;
using System.Windows;
using System.Windows.Controls;
using System.Windows.Documents;
using System.Windows.Ink;
using System.Windows.Input;
using System.Windows.Media;
using System.Windows.Media.Animation;
using System.Windows.Shapes;
namespace ExtendChart
{
public class ExtendVaules
{
public static Color ReturnColorFromString(string color)
{
string alpha = color.Substring(0, 2);
string red = color.Substring(2, 2);
string green = color.Substring(4, 2);
string blue = color.Substring(6, 2);
byte alphaByte = Convert.ToByte(alpha, 16);
byte redByte = Convert.ToByte(red, 16);
byte greenByte = Convert.ToByte(green, 16);
byte blueByte = Convert.ToByte(blue, 16);
return Color.FromArgb(alphaByte, redByte, greenByte, blueByte);
}
}
}