devexpress РепозиторийItemRadioGroup элемент текста обрезается - PullRequest
0 голосов
/ 26 декабря 2018

Я создаю RepositoryItemRadioGroup для редактирования ячейки XtraGrid.GridControl.

        var radioGroup = new RepositoryItemRadioGroup();

        var radioCtrl = node.ViewControl as IRadioButtonControl;
        if (radioCtrl == null)
            return radioGroup;

        var index = 0;
        foreach (var choice in choices)
        {
            var choiceValue = index.ToString();
            ++index;
            var item = new RadioGroupItem(choiceValue, choice);
            radioGroup.Items.Add(item);
        }

При запуске текст RadioGroupItem обрезается справа, если он длиннее некоторого числасимволов.

Как управлять / изменять рисование этого элемента управления?

1 Ответ

0 голосов
/ 28 декабря 2018

Первоначально я бы сказал, что для этого нужно использовать «AutoFit», но я попробовал его, прежде чем предлагать его, и кажется, что он автоматически подходит для содержимого, а не для элемента управления.

Есть взломвиды, я думаю, будет близко.Прежде всего, вам нужно установить для свойства ItemsLayout редактирования репозитория значение «Поток», в результате чего переключатели будут отображаться рядом друг с другом, а не в виде пробелов на основе самого большого заголовка:

repositoryItemRadioGroup1.ItemsLayout = DevExpress.XtraEditors.RadioGroupItemsLayout.Flow

Эта следующая часть является хакерской и может потребовать некоторой настройки ... по сути, вам нужно вручную определить ширину столбца на основе заголовков радиокнопок и радиокнопок.Сам переключатель с отступом примерно равен ширине 25. Каждый символ, вероятно, равен 5 или 6. Таким образом, если вы берете каждый элемент и предполагаете, что ему нужна ширина, равная 25 символам, вы можете добавить это исоответственно установите ширину столбца.

int width = 0;
foreach (var choice in choices)
{
    var choiceValue = index.ToString();
    width += (25 + 6 * choice.Length);
    ++index;
    var item = new RadioGroupItem(choiceValue, choice);
    repositoryItemRadioGroup1.Items.Add(item);
}

colGridColumn.Width = width;

Я надеюсь, что есть решение Dev Ex для этого, но я не знаю ни одного ... а пока попробуйте.

...