#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.