(C #) Условное форматирование в столбце сетки на основе диапазона значений - PullRequest
1 голос
/ 18 августа 2010

Я нашел отличный пример c #, который окрашивает ячейки в разные оттенки оранжевого на основе того, насколько велико или мало это значение: http://demos.devexpress.com/ASPxTreeListDemos/Appearance/ConditionalFormatting.aspx

Проблема в том, что он ожидает, что числа будут очень большими для его работы. Есть ли способ, используя математическую формулу, чтобы я мог указать наибольшее и наименьшее число (или все числа, если необходимо) и заставить его вычислить оттенок оранжевого цвета таким образом.

Вот конкретный код по ссылке выше:

protected void treeList_HtmlDataCellPrepared(object sender, TreeListHtmlDataCellEventArgs e) {
     if(e.Column.Name == "budget") {
         decimal value = (decimal)e.CellValue;
         e.Cell.BackColor = GetBudgetColor(value);
         if(value > 1000000M)
             e.Cell.Font.Bold = true
     }
 }

 Color GetBudgetColor(decimal value) {
     decimal coeff = value / 1000 - 22;
     int a = (int)(0.02165M * coeff);
     int b = (int)(0.09066M * coeff);
     return Color.FromArgb(255, 235 - a, 177 - b);
 }

Я предполагаю, что число, умноженное на коэффициент, может быть как-то рассчитано. Есть идеи?

Ответы [ 2 ]

0 голосов
0 голосов
/ 18 августа 2010

попробуйте изменить эту строку decimal coeff = value / 1000 - 22; на decimal coeff = value / 100 - 22;

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