ADN Open CIS
Сообщество программистов Autodesk в СНГ

27/05/2016

Добавление Stacked Split Button на ленту

Не решился переводить Stacked Split Button. Stacked Items – Элементы на ленте, расположенные в столбец. Split Button – кнопка, которая имеет подпункты в раскрывающемся списке, при этом на саму кнопку тоже можно назначить действия.

Вопрос: На текущий момент, Split Button нельзя создать с помощью метода AddStackedItems. Можно только PushButton, PullButton, ComboBox и TextBox. Можно как-то обойти это ограничение? Хочу получить в итоге что то типа такого:

 

Я уже на самом деле обошел это ограничение используя библиотеку AdWindows.dll, но мне интересно, эта возможность нарочно отсутсует в RevitAPI.dll или нет.

Ответ: Эта проблема уже давно была отмечена под номером REVIT-71373 Как разработчик, я хочу уметь добавлять Split Button в Stacked Items. Так что в будущем такая возможность обязательно появится.

Ответ: Спасибо.

Вот моя реализация обходного пути, с помощью неподдерживаемой сборки AdWindows.dll:

Код - C#: [Выделить]
  1.   var bd0 = new PulldownButtonData( "A", "A" );
  2.   var bd1 = new PulldownButtonData( "B", "B" );
  3.   var bd2 = new PulldownButtonData( "C", "C" );
  4.  
  5.   var stackedItems = ribbonPanel.AddStackedItems(
  6.     bd0, bd1, bd2 );
  7.  
  8.   var button0 = (PulldownButton) stackedItems[0];
  9.  
  10.   string sid = string.Join(
  11.     "%",
  12.     "CustomCtrl_",
  13.     "CustomCtrl_",
  14.     ribbonTabName,
  15.     ribbonPanel.Name,
  16.     button0.Name );
  17.  
  18.   var splitButton = (Autodesk.Windows.RibbonSplitButton)
  19.     UIFramework.RevitRibbonControl.RibbonControl
  20.       .findRibbonItemById( sid );
  21.  
  22.   splitButton.IsSplit = true;
  23.   splitButton.IsSynchronizedWithCurrentItem = true;

Пока это самое оптимальное решение, которое мне известно.

 

Источник: http://thebuildingcoder.typepad.com/blog/2015/12/adding-a-stacked-split-button-to-the-ribbon.html

Автор перевода: Виктор Чекалин

Обсуждение: http://adn-cis.org/forum/index.php?topic=

Опубликовано 27.05.2016