Несколько LinearGradientBrushes WPF - PullRequest
0 голосов
/ 05 июня 2018

У меня есть список цветов и соответствующие временные метки, например:

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;
        }
    }

Но я не вижу градиента, что когда-либо.Я вошел в отладчик, и значения такие же, как и ожидалось.

1 Ответ

0 голосов
/ 07 июня 2018

Решение:

Привязка ожидает, что GradientStopCollection не является списком.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...