diff --git a/LC_Tutorial/Tutorial/BasicPlots/PieWindow.xaml b/LC_Tutorial/Tutorial/BasicPlots/PieWindow.xaml new file mode 100644 index 0000000..3c7fff1 --- /dev/null +++ b/LC_Tutorial/Tutorial/BasicPlots/PieWindow.xaml @@ -0,0 +1,18 @@ + + + + + + + + + + diff --git a/LC_Tutorial/Tutorial/BasicPlots/PieWindow.xaml.cs b/LC_Tutorial/Tutorial/BasicPlots/PieWindow.xaml.cs new file mode 100644 index 0000000..9f2f1d1 --- /dev/null +++ b/LC_Tutorial/Tutorial/BasicPlots/PieWindow.xaml.cs @@ -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 +{ + /// + /// PieWindow.xaml에 대한 상호 작용 논리 + /// + public partial class PieWindow : Window + { + public SeriesCollection SeriesCollection { get; set; } + public Func 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 { new ObservableValue(3) }, + DataLabels = true, + LabelPoint = PointLabel + }, + new PieSeries() + { + Title = "Charles", + Values = new ChartValues { new ObservableValue(4) }, + DataLabels = true, + LabelPoint = PointLabel + }, + new PieSeries() + { + Title = "Frida", + Values = new ChartValues { new ObservableValue(6) }, + DataLabels = true, + LabelPoint = PointLabel + }, + new PieSeries() + { + Title = "Frederic", + Values = new ChartValues { 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; + } + } +} diff --git a/LC_Tutorial/Tutorial/MainWindow.xaml b/LC_Tutorial/Tutorial/MainWindow.xaml index 0abe730..c9380b2 100644 --- a/LC_Tutorial/Tutorial/MainWindow.xaml +++ b/LC_Tutorial/Tutorial/MainWindow.xaml @@ -21,6 +21,7 @@