Search code examples
c#xamlvisual-studio-2015pie-chartwindows-10-mobile

Pie Chart in Windows Universal 10


I'm currently working with a Windows Universal 10 Mobile App.

I want to draw a Pie Chart.. But I can't find any Chart Control..

Any suggestion to draw a Chart in Windows 10 Universal App?

Thanks so much!


Solution

  • Install WinRT XAML Toolkit - Data Visualization Controls for Windows 10 from Nuget Run the following command in the Package Manager Console

    PM> Install-Package WinRTXamlToolkit.Controls.DataVisualization.UWP
    

    Then, add the namespace in your XAML files that you need to implement chart control:

    xmlns:Charting="using:WinRTXamlToolkit.Controls.DataVisualization.Charting"
    

    Now, you can use chart controls:

    For example, I draw a PieChart

    <Charting:Chart 
        x:Name="PieChart" 
        HorizontalAlignment="Left" 
        VerticalAlignment="Top" 
        Margin="0" > 
        <Charting:PieSeries Margin="0" 
             IndependentValuePath="Name" 
             DependentValuePath="Amount" 
             IsSelectionEnabled="True"/>
    </Charting:Chart>
    

    In my .cs file:

    Add namespace:

    using WinRTXamlToolkit.Controls.DataVisualization.Charting;
    public class FinancialStuff
    {
        public string Name { get; set; }
        public int Amount { get; set; }
    }
    
    public MainPage()
    {
        this.InitializeComponent();
        this.Loaded += MainPage_Loaded;
    }
    
    void MainPage_Loaded(object sender, RoutedEventArgs e)
    {
        LoadChartContents();
    }
    
    private void LoadChartContents()
    {
        Random rand = new Random();
        List<FinancialStuff> financialStuffList = new List<FinancialStuff>();
        financialStuffList.Add(new FinancialStuff() { Name = "MSFT", Amount = rand.Next(0, 200) });
        financialStuffList.Add(new FinancialStuff() { Name = "AAPL", Amount = rand.Next(0, 200) });
        financialStuffList.Add(new FinancialStuff() { Name = "GOOG", Amount = rand.Next(0, 200) });
        financialStuffList.Add(new FinancialStuff() { Name = "BBRY", Amount = rand.Next(0, 200) });
        (PieChart.Series[0] as PieSeries).ItemsSource = financialStuffList;
        (ColumnChart.Series[0] as ColumnSeries).ItemsSource = financialStuffList;
        (LineChart.Series[0] as LineSeries).ItemsSource = financialStuffList;
    }
    

    You can follow this tutorial(Windows 8.1) USING GRAPHS AND CHARTS