У меня есть список цветов и соответствующие временные метки, например:
00 seconds - #ff0000
30 seconds - #00ff00
60 seconds - #0000ff
И я хочу создать индикаторную панель в моем графическом интерфейсе, которая показывает цвета, интерполирующиеся с течением времени.Панель должна выглядеть примерно так:
! [Пример бара] [1]
Я пробовал это так:
<Rectangle Grid.Row="10" Grid.Column="1" Grid.ColumnSpan="6">
<Rectangle.Fill>
<LinearGradientBrush StartPoint="0,0" EndPoint="1,1" GradientStops="{Binding Instance.GradientStops}">
</LinearGradientBrush>
</Rectangle.Fill>
</Rectangle>
Код сзади:
public ObservableCollection<GradientStop> GradientStops {
get {
ObservableCollection<GradientStop> stops = new ObservableCollection<GradientStop>();
double totalLength = this.sections[this.sections.Count - 1].SecondsSinceStart;
foreach(var section in this.sections)
{
double percentage = section.SecondsSinceStart / totalLength;
var newStop = new GradientStop(section.Color, percentage);
stops.Add(newStop);
}
return stops;
}
}
Но я не вижу градиента, что когда-либо.Я вошел в отладчик, и значения такие же, как и ожидалось.