silverlight visifire 图表辅助类
来源:互联网 发布:linux复制压缩文件命令 编辑:程序博客网 时间:2024/06/05 00:02
在实际项目开展中,往往会牵扯到需要绘制图表的情况。而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); } }}
0 0
- silverlight visifire 图表辅助类
- SilverLight图表控件 Visifire
- Silverlight中的图表控件visifire的使用
- SilverLight-Visifire图表控件简单应用
- Silverlight 的图表控件 Visifire 的疑问
- silverlight Visifire图表转图片--偷天换日的做法
- visifire笔记 - 图表控件
- 初识visifire图表
- 使用Visifire+ArcGIS API for Silverlight实现Graphic信息的动态图表显示
- Visifire WPF 图表控件 破解
- Visifire图表应用2-更改图例位置
- 如何自定义visifire图表主题和样式?
- WPF Visifire图表控件使用基础
- Silverlight 使用Visifire Chart 展示统计图
- Silverlight Visifire 5.0.4 完美去水印
- Silverlight Visifire控件应用去水印
- silverlight 图表
- Silverlight辅助开发工具
- hibernate的one-to-many
- 学习iOS动画看我就够了!!转载
- 收集的网络资源
- 正则表达式简介
- 【FFMpeg视频开发与应用基础】六、调用FFMpeg SDK实现视频文件的转封装
- silverlight visifire 图表辅助类
- SysTick_Config配置systic中断间隔时间
- js中的preventDefault与stopPropagation详解
- JSON数据封装
- 浅析Struts1和Struts2的Action线程安全问题
- 开源jms服务ActiveMQ的负载均衡+高可用部署方案探索
- Crypto functions analysis in SCEP client java version
- Android6.0权限适配之WRITE_EXTERNAL_STORAGE(SD卡写入)
- 操作系统的基本组成部分