Динамически установить текст для метки центра Dev Express Sunburst - PullRequest
0 голосов
/ 04 марта 2020

У меня есть Dev Express SunburstControl, отображающий папки и их размеры в байтах, где размеры используются в качестве значений для элемента управления. Следовательно, текст в центре отображает «Root: 162781888417» (что означает 152 ГБ), когда для CenterLabel.TextPattern установлено значение «Root: {TV}».

Dynamic center label text

Однако я хочу отобразить этот размер по-разному, в зависимости от размера ...

  • Root размер в байтах => Отображаемый текст
  • 162781888417 => 152 ГБ
  • 8234489 => 7,85 МБ
  • 1047552 => 1 023 кБ
  • 40584 => 39,6 кБ

Я уже у меня есть преобразование кода между байтами и другими единицами, но мне не хватает способа сказать метке центра использовать этот код конверсии.

Вкратце: как сделать так, чтобы метка центра отображала разные тексты на основе по значению?

1 Ответ

0 голосов
/ 13 марта 2020

Чтобы выполнить sh эту задачу, вручную преобразуйте итоговое значение в соответствующий формат и назначьте его свойству CenterLabel.TextPattern. В этом примере функция BytesToString преобразует число в один из предопределенных форматов (см. Как получить читаемый человеком размер файла в сокращении в байтах, используя. NET? )

    private void Form_Load(object sender, EventArgs e)
    {
        long val = 0;
        foreach (var item in sunburstControl1.DataAdapter.Items)
        {
            val += (long)item.Value;
        }
        sunburstControl1.CenterLabel.TextPattern = BytesToString(val);
    }
...