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

ADN Club => AutoCAD .NET API => Тема начата: alvimo от 07-03-2022, 19:40:18

Название: Отследить выпадающую панель SlideOut
Отправлено: alvimo от 07-03-2022, 19:40:18
Всем привет!
Может кто сталкивался с таким вопросом.
Как отследить событие, когда открывается выпадающая панель (SlideOut), т.е. когда нажимаешь на область панели со стрелочкой.
Пробовал по событию PropertyChanged, но срабатывает только когда панель автоматически закрывается.
В поиске что-то вообще стало скучно по теме с# автокад.
(https://i.postimg.cc/Z06WGRwk/ribbon.jpg) (https://postimg.cc/Z06WGRwk)
Название: Re: Отследить выпадающую панель SlideOut
Отправлено: Александр Ривилис от 07-03-2022, 19:53:55
Как отследить событие, когда открывается выпадающая панель (SlideOut), т.е. когда нажимаешь на область панели со стрелочкой.
Зачем?
Пробовал по событию PropertyChanged, но срабатывает только когда панель автоматически закрывается.
А Initialized?
Название: Re: Отследить выпадающую панель SlideOut
Отправлено: alvimo от 08-03-2022, 04:31:19
Зачем?

Нужно, чтоб при клике по стрелке раскрытия выпадающей панели заполнялся список оборудования в зависимости от выбранного на чертеже объекта.
Можно, конечно, сделать заполнение списка автоматом при выборе объекта на чертеже, но это будет избыточно, менять каждый раз оборудование не нужно и иметь постоянно эту информацию тоже не нужно, поэтому и прячу контрол с перечнем оборудования в выпадающей панели.
Вот и пошел таким "нелегким" путем.
Название: Re: Отследить выпадающую панель SlideOut
Отправлено: alvimo от 08-03-2022, 04:35:22
А Initialized?

Initialized - вообще не проявляется.
Делаю так:
Код - C# [Выбрать]
  1. RibbonPanelBreak rpbrk = new RibbonPanelBreak();
  2. rpbrk.Initialized += dddd;
  3. static private void dddd(object sender, EventArgs e){...}
Название: Re: Отследить выпадающую панель SlideOut
Отправлено: Дмитрий Загорулькин от 08-03-2022, 17:12:39
Как отследить событие, когда открывается выпадающая панель (SlideOut), т.е. когда нажимаешь на область панели со стрелочкой.
Что-то с ходу не получилось ничего найти подходящего. Тут надо, наверное, подключать отслеживание событий в ARXDBG/MGDDBG и смотреть что происходит при разворачивании панели.
Нужно, чтоб при клике по стрелке раскрытия выпадающей панели заполнялся список оборудования в зависимости от выбранного на чертеже объекта.
Можно, конечно, сделать заполнение списка автоматом при выборе объекта на чертеже, но это будет избыточно, менять каждый раз оборудование не нужно и иметь постоянно эту информацию тоже не нужно, поэтому и прячу контрол с перечнем оборудования в выпадающей панели.
Вот и пошел таким "нелегким" путем.
Лента для такого не предназначена. Можно, конечно, попробовать и поизвращаться. Тогда всё равно придётся делать обновление панели при выборе объекта на чертеже. Ведь раскрывающуюся часть панели можно закрепить.
А чем не устраивает вариант, когда по кнопке на ленте открывается своё диалоговое окно? В нём можно будет сделать всё что угодно.
Название: Re: Отследить выпадающую панель SlideOut
Отправлено: Lemieux от 08-03-2022, 18:49:58
Попробуй Application.DocumentManager.MdiActiveDocument.Editor.SelectionAdded. Подписываешься на эвент, в методе уже динамически обновляешь ленту в зависимости от того какой объект выбран. Но это не точно.
Название: Re: Отследить выпадающую панель SlideOut
Отправлено: alvimo от 27-03-2022, 04:51:16
А чем не устраивает вариант, когда по кнопке на ленте открывается своё диалоговое окно? В нём можно будет сделать всё что угодно.

Доброго дня!
У меня сейчас так и работает, но я хочу уйти от диалогового окна.
В общем я сделал через RibbonCombo и убрал выпадающую панель и стало проще:  через событие DropDownOpened загружаю список RibbonCombo, а через CurrentChanged присваиваю значение переменной. В общем все работает.
Благодарю за помощь.
Название: Re: Отследить выпадающую панель SlideOut
Отправлено: Дмитрий Загорулькин от 27-03-2022, 16:21:40
В общем я сделал через RibbonCombo
Интересное решение! Можете скриншот показать, как это выглядит у вас на панели ленты?
Название: Re: Отследить выпадающую панель SlideOut
Отправлено: alvimo от 28-03-2022, 16:38:46
В общем я сделал через RibbonCombo
Интересное решение! Можете скриншот показать, как это выглядит у вас на панели ленты?

Да, пожалуйста.
(https://i.postimg.cc/VJs4P470/1.png) (https://postimg.cc/VJs4P470)

(https://i.postimg.cc/gwnDnjbY/2.png) (https://postimg.cc/gwnDnjbY)
Название: Re: Отследить выпадающую панель SlideOut
Отправлено: Дмитрий Загорулькин от 28-03-2022, 16:43:39
Спасибо!