Search code examples
wpfchartscode-behindlineseries

Change Lineseries thickness in WPFToolkit.Chart C#


I'm trying change the line thickness in a serie dinamically created, I need turn the line more thick.

Below, follow the code to bind the created serie on chart component. It works fine, but I tryed adapt this in this code and I had no sucess.

Please help, thanks.

Style style = new Style(typeof(LineDataPoint));
style.Setters.Add(new Setter(LineDataPoint.OpacityProperty, (double)(0.0)));
style.Setters.Add(new Setter(LineDataPoint.BackgroundProperty, dadosSerie.ColorSerie));

LineSeries lineSerie = new LineSeries()
{
    Title = dadosSerie.SerieTitle,
    IndependentValueBinding = new Binding("Key"),
    DependentValueBinding = new Binding("Value"),
    DependentRangeAxis = dadosSerie.EixoY,
    DataPointStyle = style,
    ItemsSource = dadosSerie.DataSerie,
};

chtGraficos.Series.Add(lineSerie);

Solution

  • Have you tried adding a Style for the serie's Polyline instead? It seams the style for the LineDataPoint is actually for every point on the serie.

    Here is a working sample of a chart fully created on code-behind. You just have to create a window named MainWindow and add a reference on the project to System.Windows.Controls.DataVisualization.Toolkit:

    public partial class MainWindow : Window
    {
        public MainWindow()
        {
            InitializeComponent();
    
            var valueList = new Dictionary<string, int>();
            valueList.Add("Developer", 60);
            valueList.Add("Misc", 20);
            valueList.Add("Project Manager", 40);
    
            var style = new Style(typeof(Polyline));
            style.Setters.Add(new Setter(Polyline.StrokeThicknessProperty, 10d));
    
            var series = new LineSeries
            {
                PolylineStyle = style,
                ItemsSource = valueList,
                DependentValuePath = "Value",
                IndependentValuePath = "Key",
            };
    
            var lineChart = new Chart { Height = 254 };
            lineChart.Series.Add(series);
    
            var mainGrid = new Grid();
            mainGrid.Children.Add(lineChart);
    
            this.Content = mainGrid;
        }
    }