У меня есть «виджет монитора» WPF, который отображает производительность процессора, оперативной памяти и диска в виде небольших процентных полос.Я использую следующий градиент в качестве ресурса для разделения баров на 4 секции (т. Е. 0% - 25%, 25% - 50% и т. Д.)
<LinearGradientBrush x:Key="Quarters" StartPoint="0,0" EndPoint="0,15" MappingMode="Absolute">
<GradientStop Color="LightGreen" Offset="0.0" />
<GradientStop Color="LightGreen" Offset="0.24" />
<GradientStop Color="Yellow" Offset="0.25" />
<GradientStop Color="Yellow" Offset="0.49" />
<GradientStop Color="Orange" Offset="0.5" />
<GradientStop Color="Orange" Offset="0.74" />
<GradientStop Color="Red" Offset="0.75" />
<GradientStop Color="Red" Offset="1.0" />
</LinearGradientBrush>
Первоначально позиция баров составляла 0%был сверху (bar.Height = 0) и 100% был внизу (bar.Height = 15).Размер бара будет меняться, просто регулируя его свойство Height.Все работало нормально, но я бы предпочел, чтобы позиция 0% баров была внизу, т.е.столбики будут «расти» вверх.
Заставить столбики расти вверх не было проблемой, но у меня есть проблема в том, что теперь градиент перемещается вместе с прямоугольником, так что верх прямоугольника всегда зеленый,независимо от того, насколько он маленький.Я понимаю, что это потому, что я сейчас использую Canvas.SetTop для перемещения верха прямоугольников (баров), а также для изменения их высоты.Как я могу заставить градиент в абсолютную позицию, независимо от положения прямоугольника?
(непрозрачность фона)
Извините, я знаю, что изображение маленькое,но вы должны просто быть в состоянии различить, что средняя полоса начинается сверху (зеленый) и растет вниз, заканчиваясь оранжевым (значение 50% -75%).Левая полоса начинается снизу (это то, что я хочу), но градиент в этой полосе перемещается вместе с высотой ... это проблема.Обратите внимание, что я исправлю градиент, когда смогу решить эту проблему, так что красный будет представлять верхние 25%.В этом примере нижняя четверть должна быть красной, следующая четверть оранжевой, а оставшаяся желтой.
Я не могу поверить, что для этого нет простого решения ... давай рассуждаем.:) Как насчет перемещения абсолютного положения градиента с помощью прямоугольника ... это возможно ???
(Относящийся к сообщению: Определение максимальной скорости передачи данных жесткого диска компьютера программно с помощью C # )