|
|
@ -0,0 +1,91 @@ |
|
|
|
|
|
|
|
using LiveCharts; |
|
|
|
|
|
|
|
using LiveCharts.Defaults; |
|
|
|
|
|
|
|
using LiveCharts.Wpf; |
|
|
|
|
|
|
|
using System; |
|
|
|
|
|
|
|
using System.Collections.Generic; |
|
|
|
|
|
|
|
using System.Linq; |
|
|
|
|
|
|
|
using System.Text; |
|
|
|
|
|
|
|
using System.Threading.Tasks; |
|
|
|
|
|
|
|
using System.Windows; |
|
|
|
|
|
|
|
using System.Windows.Controls; |
|
|
|
|
|
|
|
using System.Windows.Data; |
|
|
|
|
|
|
|
using System.Windows.Documents; |
|
|
|
|
|
|
|
using System.Windows.Input; |
|
|
|
|
|
|
|
using System.Windows.Media; |
|
|
|
|
|
|
|
using System.Windows.Media.Imaging; |
|
|
|
|
|
|
|
using System.Windows.Shapes; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
namespace Tutorial.BasicPlots |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
/// <summary> |
|
|
|
|
|
|
|
/// PieWindow.xaml에 대한 상호 작용 논리 |
|
|
|
|
|
|
|
/// </summary> |
|
|
|
|
|
|
|
public partial class PieWindow : Window |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
public SeriesCollection SeriesCollection { get; set; } |
|
|
|
|
|
|
|
public Func<ChartPoint, string> PointLabel { get; set; } |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public PieWindow() |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
InitializeComponent(); |
|
|
|
|
|
|
|
InitInstance(); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void InitInstance() |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
PointLabel = chartPoint => $"{chartPoint.Y.ToString("N2")} ({chartPoint.Participation.ToString("P")})"; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
SeriesCollection = new SeriesCollection() |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
new PieSeries() |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
Title = "Maria", |
|
|
|
|
|
|
|
Values = new ChartValues<ObservableValue> { new ObservableValue(3) }, |
|
|
|
|
|
|
|
DataLabels = true, |
|
|
|
|
|
|
|
LabelPoint = PointLabel |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
new PieSeries() |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
Title = "Charles", |
|
|
|
|
|
|
|
Values = new ChartValues<ObservableValue> { new ObservableValue(4) }, |
|
|
|
|
|
|
|
DataLabels = true, |
|
|
|
|
|
|
|
LabelPoint = PointLabel |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
new PieSeries() |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
Title = "Frida", |
|
|
|
|
|
|
|
Values = new ChartValues<ObservableValue> { new ObservableValue(6) }, |
|
|
|
|
|
|
|
DataLabels = true, |
|
|
|
|
|
|
|
LabelPoint = PointLabel |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
new PieSeries() |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
Title = "Frederic", |
|
|
|
|
|
|
|
Values = new ChartValues<ObservableValue> { new ObservableValue(2) }, |
|
|
|
|
|
|
|
DataLabels = true, |
|
|
|
|
|
|
|
LabelPoint = PointLabel |
|
|
|
|
|
|
|
}, |
|
|
|
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
DataContext = this; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void PieChart_DataClick(object sender, LiveCharts.ChartPoint chartPoint) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
var chart = chartPoint.ChartView as PieChart; |
|
|
|
|
|
|
|
if (chart == null) |
|
|
|
|
|
|
|
return; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
foreach (PieSeries series in chart.Series) |
|
|
|
|
|
|
|
{ |
|
|
|
|
|
|
|
series.PushOut = 0; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var selectedSeries = chartPoint.SeriesView as PieSeries; |
|
|
|
|
|
|
|
if (selectedSeries == null) |
|
|
|
|
|
|
|
return; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
selectedSeries.PushOut = 15; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |