Программный доступ к элементам ленты в ленте XML - PullRequest
8 голосов
/ 20 февраля 2012

Здесь, кажется, несколько раз спрашивали без реального ответа:

Программный доступ к элементам управления ленты на ленте XML

Лента Office: как получить доступ к элементу управления, когда лента была создана с использованием XML

Если лента создается с использованием ленты xml, насколько я могу судить, программная экспозиция компонентов, определенных в этом xml, отсутствует. Единственный очевидный ограниченный способ изменить состояние этих компонентов - это использовать что-то вроде события onAction, getContent, getImage, а элемент IRibbonControl предлагает очень мало для манипулирования данным элементом (не говоря уже о том, что большинство этих функций запускаются только один раз). , когда впервые отображается).

Так что я пытаюсь найти способ программно получить доступ к этим элементам ленты xml.

1 Ответ

8 голосов
/ 21 февраля 2012

Нет способа получить программный доступ к элементам ленты при использовании ленты XML.Если вы хотите изменить состояние элементов управления ленты - вам нужно использовать IRibbonUI.Invalidate() для принудительного создания нового рендеринга макета (, возможно, с использованием свойств, которые запускают различные варианты поведения во время рендеринга с помощью обратных вызовов ).Это может быть хорошо, так как у вас больше контроля над процессом рисования, если вы изменяете состояние нескольких элементов.

См. связанную публикацию SO по обновлению состояния элемента управления пользовательского интерфейса ленты.

Если вам нужен программный доступ к элементам ленты, вам следует использовать Дизайнер ленты .Однако, как указано в MSDN , конструктор поддерживает не все настройки.Некоторые предполагают, что дизайнер просто упаковывает Ribbon XML для вас под капот.

Вам просто нужно изучить механизм обратного вызова , используемый XML-лентой - для вас нет дерева управления, к которому вы могли бы получить доступ.

...