Мне нужно отображать данные в приложении WPF, цвет которого пропорционален измерению значения свойства элемента, как на изображении ниже.Преобразователь цветовой шкалы
Мой вопрос как обеспечить цвет/LinearGradientBrush (зелено-черно-красный) на основе относительной стоимости? Самые низкие значения должны возвращать красный (тарелка), средние значения черный/серый (иш) и наивысшие значения жадности (ish), как на изображении.
Я начал привязывать цвет фона каждой панели к значению элемента с помощью конвертера, который может возвращать некоторые отдельные цвета, но я хотел бы вернуть весь диапазон возможных LinearGradientBrushes на основе относительного значения.
Public Class ValueToColorConverter
Inherits MarkupExtension
Implements IValueConverter
Public Function Convert(ByVal value As Object, ByVal targetType As System.Type, ByVal parameter As Object, ByVal culture As System.Globalization.CultureInfo) As Object Implements IValueConverter.Convert
Dim v As Double = System.Convert.ToDecimal(value)
If v < 0 Then
Return Brushes.Red
ElseIf v < 0.05 Then
Return Brushes.Gray
Else
Return Brushes.Green
End If
End Function
Public Function ConvertBack(ByVal value As Object, ByVal targetType As System.Type, ByVal parameter As Object, ByVal culture As System.Globalization.CultureInfo) As Object Implements IValueConverter.ConvertBack
Throw New System.NotImplementedException()
End Function
Public Overrides Function ProvideValue(ByVal serviceProvider As System.IServiceProvider) As Object
Return Me
End Function
End Class
Я думаю, что LinearGradientBrush вам не подходит. Похоже, вы просто хотите создать «SolidColorBrush» с определенным значением цвета. Взгляните на метод ['Color.FromArgb'] (http://msdn.microsoft.com/en-us/library/system.windows.media.color.fromargb.aspx). – Clemens
Что случилось с текущим решением? Кажется, я так и делал. – Sheridan
Проблема с текущим решением заключается в том, что он может вернуть только 3 уникальных цвета (красный, серый или зеленый), но я хочу вернуть цвет из большего диапазона (неограниченное количество) возможных цветов. Я хочу рассчитать определенный цвет (SolidColor или LinearGradient, что угодно, что угодно) от данного значения. – Nuts