syneffort 1 year ago
parent 35c356a674
commit 9171fa4a41
  1. 18
      LC_Tutorial/Tutorial/BasicPlots/PieWindow.xaml
  2. 91
      LC_Tutorial/Tutorial/BasicPlots/PieWindow.xaml.cs
  3. 1
      LC_Tutorial/Tutorial/MainWindow.xaml
  4. 6
      LC_Tutorial/Tutorial/MainWindow.xaml.cs

@ -0,0 +1,18 @@
<Window x:Class="Tutorial.BasicPlots.PieWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:local="clr-namespace:Tutorial.BasicPlots"
xmlns:lvc="clr-namespace:LiveCharts.Wpf;assembly=LiveCharts.Wpf"
mc:Ignorable="d"
Title="PieWindow" Height="450" Width="800">
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="*"/>
</Grid.RowDefinitions>
<lvc:PieChart Grid.Row="0" Series="{Binding SeriesCollection}" LegendLocation="Bottom" DataClick="PieChart_DataClick" Hoverable="False">
</lvc:PieChart>
</Grid>
</Window>

@ -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;
}
}
}

@ -21,6 +21,7 @@
<Button x:Name="btnScatter" Content="Scatter" Margin="3" Click="btnScatter_Click"/>
<Button x:Name="btnBubble" Content="Bubble" Margin="3" Click="btnBubble_Click"/>
<Button x:Name="btnFinancial" Content="Financial" Margin="3" Click="btnFinancial_Click"/>
<Button x:Name="btnPie" Content="Pie" Margin="3" Click="btnPie_Click"/>
</StackPanel>
</Grid>
</Window>

@ -79,5 +79,11 @@ namespace Tutorial
FinancialWindow win = new FinancialWindow();
win.Show();
}
private void btnPie_Click(object sender, RoutedEventArgs e)
{
PieWindow win = new PieWindow();
win.Show();
}
}
}

Loading…
Cancel
Save