В настоящее время я занимаюсь разработкой надстройки VSTO и настройкой ленты для Word 2010. Это работает нормально, но имеет недостаток: настройка ленты должна выполняться только для определенных документов, но метод IRibbonExtensibility.GetCustomUI () явно вызывается в приложении. запуск перед загрузкой любого документа. Как я могу выполнить это требование?
Как настроить ленту Word 2010 только по запросу в надстройке VSTO4?
Ответы (2)
Вы правы, он вызывается только один раз. О вашем единственном выборе (и что сработало для меня достаточно хорошо) - это определить ВСЕ на вашей ленте заранее, а затем установить для свойства VISIBLE значение false или true, в зависимости от того, какой документ загружен, или что-то еще, что происходит в вашем надстройке. .
@drventure прав, вы должны определить свою ленту заранее, а затем показать / скрыть различные кнопки на ленте.
Что может вам помочь, так это некоторые функции в проекте, над которым я работал, VSTO Contrib, он позволяет вам создать ViewModel, который будет создан для каждого открытого документа, и он обнаружит и подключит ленту xml с помощью соглашение.
В вашем случае это будет означать, что вы можете привязать видимость кнопок ленты к свойству в модели просмотра, и вам не нужно беспокоиться о синхронизации окна / документов. Прочтите http://jake.ginnivan.net/vsto-contrib/ribbon-factory и посмотрите, поможет ли это решить вашу проблему с помощью кода без кучи =)