devexpress RepositoryItemRadioGroup项目文本已剪切

时间:2018-12-26 10:27:41

标签: devexpress xtragrid

我正在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 :(得分:1)

起初我会说要使用“自动调整”来完成这项工作,但是我在建议它之前尝试了一下,看来它可以自动适应内容而不是控件。

我认为这很容易被黑客入侵。首先,您需要将存储库编辑的ItemsLayout属性设置为“ Flow”,这将使单选按钮彼此相邻出现,而不是根据最大的标题为其留出空格:

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解决方案,但我不知道...在此期间尝试一下。