линейная диаграмма инструментария wpf без точек и с разными цветами линий

#c# #wpf #wpftoolkit #charts

#c# #wpf #wpftoolkit #Диаграммы

Вопрос:

У меня есть некоторый график, и я хочу добавить динамические линейные ряды без точек данных, просто линии с некоторыми пользовательскими цветами. Единственный способ, который я нашел, чтобы скрыть точки данных, это:

 Style style = new Style(typeof(LineDataPoint));
style.Setters.Add(new Setter(LineDataPoint.TemplateProperty, null));

var series = new LineSeries()
{
      Title = name,
      DependentValuePath = "Y",
      IndependentValuePath = "X",
      ItemsSource = new ObservableCollection<FloatingPoint>(),
      DataPointStyle = style,

        };
  

К сожалению, когда я делаю это, все линии становятся желтыми, и я не могу изменить их цвета.
Я пытался сделать это:

 Style style = new Style(typeof(LineDataPoint));
        style.Setters.Add(new Setter(LineDataPoint.TemplateProperty, null));

        SolidColorBrush brush = new SolidColorBrush(Colors.Red);

        var series = new LineSeries()
        {
            Title = name,
            DependentValuePath = "Y",
            IndependentValuePath = "X",
            ItemsSource = new ObservableCollection<FloatingPoint>(),
            DataPointStyle = style,
            Background = brush,

        };
  

Но это не помогает — я не могу изменить цвет линии… Даже если я напишу

 series.Background = brush;
  

Ответ №1:

Попробуйте это.

                     series = new LineSeries();
                    Style dataPointStyle = GetNewDataPointStyle();
                    series.DataPointStyle = dataPointStyle;




    /// <summary>
    /// Gets the new data point style.
    /// </summary>
    /// <returns></returns>
    private static Style GetNewDataPointStyle()
    {
        Color background = Color.FromRgb((byte)random.Next(255), 
                                         (byte)random.Next(255), 
                                         (byte)random.Next(255));
        Style style = new Style(typeof(DataPoint));
        Setter st1 = new Setter(DataPoint.BackgroundProperty, 
                                    new SolidColorBrush(background));
        Setter st2 = new Setter(DataPoint.BorderBrushProperty, 
                                    new SolidColorBrush(Colors.White));
        Setter st3 = new Setter(DataPoint.BorderThicknessProperty, new Thickness(0.1));

        Setter st4 = new Setter(DataPoint.TemplateProperty, null);
        style.Setters.Add(st1);
        style.Setters.Add(st2);
        style.Setters.Add(st3);
        style.Setters.Add(st4);
        return style;
    }
  

Комментарии:

1. это должно быть принятым ответом. 1 за помощь в решении проблемы. Это работает и в XAML.