Я хочу, чтобы кнопки горизонтального выравнивания (слева, по центру, справа) вели себя как Excel:
- Они должны действовать как взаимоисключающая группа переключателей (можно отметить только 1).
- При выборе их можно все снять. ячейка имеет выравнивание «Общее».
- Они должны визуально выглядеть как единый сегментированный элемент управления (объединенные границы внутри BarButtonGroup).
Вот код, который я использую для назначения свойств GroupIndex и AllowAllUp моим сгенерированным кнопкам выравнивания:
Код: Выделить всё
private void SetupAlignmentButtons()
{
// horzCmds contains: "FormatAlignmentLeft", "FormatAlignmentCenter", "FormatAlignmentRight"
var horzCmds = new List { "FormatAlignmentLeft", "FormatAlignmentCenter", "FormatAlignmentRight" };
foreach (RibbonPageGroup group in ribbonPage1.Groups)
{
foreach (BarItemLink link in group.ItemLinks)
{
if (link.Item is BarButtonGroup btnGroup)
{
foreach (BarItemLink subLink in btnGroup.ItemLinks)
{
if (subLink.Item is DevExpress.XtraSpreadsheet.UI.SpreadsheetCommandBarButtonItem cmdBtn)
{
if (horzCmds.Contains(cmdBtn.CommandName))
{
cmdBtn.GroupIndex = 202;
cmdBtn.AllowAllUp = true;
}
}
}
}
}
}
}
Вот на что я надеюсь:

И на чем я застрял:

Мобильная версия