LiveCharts控件基本使用

发布时间 2023-11-15 20:50:43作者: 赵书记

Angular Ganuge控件

 

 1 using System.Windows;
 2 using System.Windows.Forms;
 3 using System.Windows.Media;
 4 using LiveCharts.Wpf;
 5 using Brushes = System.Windows.Media.Brushes;
 6  
 7 namespace Winforms.Gauge.AngularGauge
 8 {
 9     public partial class AngularGugeForm : Form
10     {
11         public AngularGugeForm()
12         {
13             InitializeComponent();
14  
15             angularGauge1.Value = 160;
16             angularGauge1.FromValue = 50;
17             angularGauge1.ToValue = 250;
18             angularGauge1.TicksForeground = Brushes.White;
19             angularGauge1.Base.Foreground = Brushes.White;
20             angularGauge1.Base.FontWeight = FontWeights.Bold;
21             angularGauge1.Base.FontSize = 16;
22             angularGauge1.SectionsInnerRadius = 0.5;
23  
24             angularGauge1.Sections.Add(new AngularSection
25             {
26                 FromValue = 50, 
27                 ToValue = 200,
28                 Fill = new SolidColorBrush(Color.FromRgb(247,166,37))
29             });
30             angularGauge1.Sections.Add(new AngularSection
31             {
32                 FromValue = 200,
33                 ToValue = 250,
34                 Fill = new SolidColorBrush(Color.FromRgb(254, 57, 57))
35             });
36         }
37     }
38 }

Solid Gauge

 

 1 using System.Windows;
 2 using System.Windows.Forms;
 3 using System.Windows.Media;
 4  
 5 namespace Winforms.Gauge._360
 6 {
 7     public partial class Gauge360Example : Form
 8     {
 9         public Gauge360Example()
10         {
11             InitializeComponent();
12  
13             //360 mode enabled
14             solidGauge1.Uses360Mode = true;
15             solidGauge1.From = 0;
16             solidGauge1.To = 100;
17             solidGauge1.Value = 50;
18  
19             //rotated 90° and has an inverted clockwise fill
20             solidGauge2.Uses360Mode = true;
21             solidGauge2.From = 0;
22             solidGauge2.To = 100;
23             solidGauge2.Value = 50;
24             solidGauge2.Base.GaugeRenderTransform = new TransformGroup
25             {
26                 Children = new TransformCollection
27                 {
28                     new RotateTransform(90),
29                     new ScaleTransform {ScaleX = -1}
30                 }
31             };
32  
33             solidGauge3.Uses360Mode = true;
34             solidGauge3.From = 0;
35             solidGauge3.To = 100;
36             solidGauge3.Value = 20;
37             solidGauge3.HighFontSize = 60;
38             solidGauge3.Base.Foreground = Brushes.White;
39             solidGauge3.InnerRadius = 0;
40             solidGauge3.GaugeBackground = new SolidColorBrush(Color.FromRgb(71,128,181));
41  
42             //the next gauge interpolates from color white, to color black according
43             //to the current value in the gauge
44             solidGauge4.Uses360Mode = true;
45             solidGauge4.From = 0;
46             solidGauge4.To = 100;
47             solidGauge4.Value = 50;
48             solidGauge4.HighFontSize = 60;
49             solidGauge4.Base.Foreground = new SolidColorBrush(Color.FromRgb(66,66,66));
50             solidGauge4.FromColor = Colors.White;
51             solidGauge4.ToColor = Colors.Black;
52             solidGauge4.InnerRadius = 0;
53             solidGauge4.Base.Background = Brushes.Transparent;
54  
55             //standard gauge
56             solidGauge5.From = 0;
57             solidGauge5.To = 100;
58             solidGauge5.Value = 50;
59  
60             //custom fill
61             solidGauge6.From = 0;
62             solidGauge6.To = 100;
63             solidGauge6.Value = 50;
64             solidGauge6.Base.LabelsVisibility = Visibility.Hidden;
65             solidGauge6.Base.GaugeActiveFill = new LinearGradientBrush
66             {
67                 GradientStops = new GradientStopCollection
68                 {
69                     new GradientStop(Colors.Yellow, 0),
70                     new GradientStop(Colors.Orange, .5),
71                     new GradientStop(Colors.Red, 1)
72                 }
73             };
74         }
75     }
76 }

Pie Chart

 

 1 using System;
 2 using System.Windows.Forms;
 3 using LiveCharts;
 4 using LiveCharts.Wpf;
 5  
 6 namespace Winforms.PieChart
 7 {
 8     public partial class PieChartExample : Form
 9     {
10         public PieChartExample()
11         {
12             InitializeComponent();
13  
14             Func<ChartPoint, string> labelPoint = chartPoint =>
15                 string.Format("{0} ({1:P})", chartPoint.Y, chartPoint.Participation);
16  
17             pieChart1.Series = new SeriesCollection
18             {
19                 new PieSeries
20                 {
21                     Title = "Maria",
22                     Values = new ChartValues<double> {3},
23                     PushOut = 15,
24                     DataLabels = true,
25                     LabelPoint = labelPoint
26                 },
27                 new PieSeries
28                 {
29                     Title = "Charles",
30                     Values = new ChartValues<double> {4},
31                     DataLabels = true,
32                     LabelPoint = labelPoint
33                 },
34                 new PieSeries
35                 {
36                     Title = "Frida",
37                     Values = new ChartValues<double> {6},
38                     DataLabels = true,
39                     LabelPoint = labelPoint
40                 },
41                 new PieSeries
42                 {
43                     Title = "Frederic",
44                     Values = new ChartValues<double> {2},
45                     DataLabels = true,
46                     LabelPoint = labelPoint
47                 }
48             };
49  
50             pieChart1.LegendLocation = LegendLocation.Bottom;
51         }
52     }
53 }

Doughnut

 

 1 using System.Windows.Forms;
 2 using LiveCharts;
 3 using LiveCharts.Wpf;
 4  
 5 namespace Winforms.PieChart
 6 {
 7     public partial class DoughnutExample : Form
 8     {
 9         public DoughnutExample()
10         {
11             InitializeComponent();
12  
13             pieChart1.InnerRadius = 100;
14             pieChart1.LegendLocation = LegendLocation.Right;
15  
16             pieChart1.Series = new SeriesCollection
17             {
18                 new PieSeries
19                 {
20                     Title = "Chrome",
21                     Values = new ChartValues<double> {8},
22                     PushOut = 15,
23                     DataLabels = true
24                 },
25                 new PieSeries
26                 {
27                     Title = "Mozilla",
28                     Values = new ChartValues<double> {6},
29                     DataLabels = true
30                 },
31                 new PieSeries
32                 {
33                     Title = "Opera",
34                     Values = new ChartValues<double> {10},
35                     DataLabels = true
36                 },
37                 new PieSeries
38                 {
39                     Title = "Explorer",
40                     Values = new ChartValues<double> {4},
41                     DataLabels = true
42                 }
43             };
44         }
45     }
46 }

Line

 

 1 using System;
 2 using System.Windows.Forms;
 3 using System.Windows.Media;
 4 using LiveCharts;
 5 using LiveCharts.Wpf;
 6  
 7 namespace Winforms.Cartesian.BasicLine
 8 {
 9     public partial class BasicLineExample : Form
10     {
11         public BasicLineExample()
12         {
13             InitializeComponent();
14  
15             cartesianChart1.Series = new SeriesCollection
16             {
17                 new LineSeries
18                 {
19                     Title = "Series 1",
20                     Values = new ChartValues<double> {4, 6, 5, 2, 7}
21                 },
22                 new LineSeries
23                 {
24                     Title = "Series 2",
25                     Values = new ChartValues<double> {6, 7, 3, 4, 6},
26                     PointGeometry = null
27                 },
28                 new LineSeries
29                 {
30                     Title = "Series 2",
31                     Values = new ChartValues<double> {5, 2, 8, 3},
32                     PointGeometry = DefaultGeometries.Square,
33                     PointGeometrySize = 15
34                 }
35             };
36  
37             cartesianChart1.AxisX.Add(new Axis
38             {
39                 Title = "Month",
40                 Labels = new[] {"Jan", "Feb", "Mar", "Apr", "May"}
41             });
42  
43             cartesianChart1.AxisY.Add(new Axis
44             {
45                 Title = "Sales",
46                 LabelFormatter = value => value.ToString("C")
47             });
48  
49             cartesianChart1.LegendLocation = LegendLocation.Right;
50  
51             //modifying the series collection will animate and update the chart
52             cartesianChart1.Series.Add(new LineSeries
53             {
54                 Values = new ChartValues<double> { 5, 3, 2, 4, 5 },
55                 LineSmoothness = 0, //straight lines, 1 really smooth lines
56                 PointGeometry = Geometry.Parse("m 25 70.36218 20 -28 -20 22 -8 -6 z"),
57                 PointGeometrySize = 50,
58                 PointForeground = Brushes.Gray
59             });
60  
61             //modifying any series values will also animate and update the chart
62             cartesianChart1.Series[2].Values.Add(5d);
63  
64  
65             cartesianChart1.DataClick += CartesianChart1OnDataClick;
66         }
67  
68         private void CartesianChart1OnDataClick(object sender, ChartPoint chartPoint)
69         {
70             MessageBox.Show("You clicked (" + chartPoint.X + "," + chartPoint.Y + ")");
71         }
72     }
73 }

Column

 

 1 using System.Windows.Forms;
 2 using LiveCharts;
 3 using LiveCharts.Wpf;
 4  
 5 namespace Winforms.Cartesian.BasicBar
 6 {
 7     public partial class BasicColumnExample : Form
 8     {
 9         public BasicColumnExample()
10         {
11             InitializeComponent();
12  
13             cartesianChart1.Series = new SeriesCollection
14             {
15                 new ColumnSeries
16                 {
17                     Title = "2015",
18                     Values = new ChartValues<double> { 10, 50, 39, 50 }
19                 }
20             };
21  
22             //adding series will update and animate the chart automatically
23             cartesianChart1.Series.Add(new ColumnSeries
24             {
25                 Title = "2016",
26                 Values = new ChartValues<double> { 11, 56, 42 }
27             });
28  
29             //also adding values updates and animates the chart automatically
30             cartesianChart1.Series[1].Values.Add(48d);
31  
32             cartesianChart1.AxisX.Add(new Axis
33             {
34                 Title = "Sales Man",
35                 Labels = new[] {"Maria", "Susan", "Charles", "Frida"}
36             });
37  
38             cartesianChart1.AxisY.Add(new Axis
39             {
40                 Title = "Sold Apps",
41                 LabelFormatter = value => value.ToString("N")
42             });
43  
44         }
45     }
46 }

Stacked Column

 

 1 using System.Windows.Forms;
 2 using LiveCharts;
 3 using LiveCharts.Wpf;
 4  
 5 namespace Winforms.Cartesian.Basic_Stacked_Column
 6 {
 7     public partial class BasicStackedColumnExample : Form
 8     {
 9         public BasicStackedColumnExample()
10         {
11             InitializeComponent();
12  
13             cartesianChart1.Series = new SeriesCollection
14             {
15                 new StackedColumnSeries
16                 {
17                     Values = new ChartValues<double> {4, 5, 6, 8},
18                     StackMode = StackMode.Values, // this is not necessary, values is the default stack mode
19                     DataLabels = true
20                 },
21                 new StackedColumnSeries
22                 {
23                     Values = new ChartValues<double> {2, 5, 6, 7},
24                     StackMode = StackMode.Values,
25                     DataLabels = true
26                 }
27             };
28  
29             //adding series updates and animates the chart
30             cartesianChart1.Series.Add(new StackedColumnSeries
31             {
32                 Values = new ChartValues<double> {6, 2, 7},
33                 StackMode = StackMode.Values
34             });
35  
36             //adding values also updates and animates
37             cartesianChart1.Series[2].Values.Add(4d);
38  
39             cartesianChart1.AxisX.Add(new Axis
40             {
41                 Title = "Browser",
42                 Labels = new[] {"Chrome", "Mozilla", "Opera", "IE"},
43                 Separator = DefaultAxes.CleanSeparator
44             });
45  
46             cartesianChart1.AxisY.Add(new Axis
47             {
48                 Title = "Usage",
49                 LabelFormatter = value => value + " Mill"
50             });
51  
52         }
53     }
54 }

Row

 

 1 using System.Windows.Forms;
 2 using LiveCharts;
 3 using LiveCharts.Wpf;
 4  
 5 namespace Winforms.Cartesian.BasicBar
 6 {
 7     public partial class BasicRowExample : Form
 8     {
 9         public BasicRowExample()
10         {
11             InitializeComponent();
12  
13             cartesianChart1.Series = new SeriesCollection
14             {
15                 new RowSeries
16                 {
17                     Title = "2015",
18                     Values = new ChartValues<double> { 10, 50, 39, 50 }
19                 }
20             };
21  
22             //adding series will update and animate the chart automatically
23             cartesianChart1.Series.Add(new RowSeries
24             {
25                 Title = "2016",
26                 Values = new ChartValues<double> { 11, 56, 42 }
27             });
28  
29             //also adding values updates and animates the chart automatically
30             cartesianChart1.Series[1].Values.Add(48d);
31  
32             cartesianChart1.AxisY.Add(new Axis
33             {
34                 Labels = new[] { "Maria", "Susan", "Charles", "Frida" }
35             });
36  
37             cartesianChart1.AxisX.Add(new Axis
38             {
39                 LabelFormatter = value => value.ToString("N")
40             });
41  
42             var tooltip = new DefaultTooltip
43             {
44                 SelectionMode = TooltipSelectionMode.SharedYValues
45             };
46  
47             cartesianChart1.DataTooltip = tooltip;
48  
49         }
50     }
51 }