Отследить выпадающую панель SlideOut

Автор Тема: Отследить выпадающую панель SlideOut  (Прочитано 9879 раз)

0 Пользователей и 7 Гостей просматривают эту тему.

Тема содержит сообщение с Решением. Нажмите здесь чтобы посмотреть его.

Оффлайн alvimoАвтор темы

  • ADN OPEN
  • Сообщений: 14
  • Карма: 3
Всем привет!
Может кто сталкивался с таким вопросом.
Как отследить событие, когда открывается выпадающая панель (SlideOut), т.е. когда нажимаешь на область панели со стрелочкой.
Пробовал по событию PropertyChanged, но срабатывает только когда панель автоматически закрывается.
В поиске что-то вообще стало скучно по теме с# автокад.


Оффлайн Александр Ривилис

  • Administrator
  • *****
  • Сообщений: 13882
  • Карма: 1787
  • Рыцарь ObjectARX
  • Skype: rivilis
Re: Отследить выпадающую панель SlideOut
« Ответ #1 : 07-03-2022, 19:53:55 »
Как отследить событие, когда открывается выпадающая панель (SlideOut), т.е. когда нажимаешь на область панели со стрелочкой.
Зачем?
Пробовал по событию PropertyChanged, но срабатывает только когда панель автоматически закрывается.
А Initialized?
Не забывайте про правильное Форматирование кода на форуме
Создание и добавление Autodesk Screencast видео в сообщение на форуме
Если Вы задали вопрос и на форуме появился правильный ответ, то не забудьте про кнопку Решение

Оффлайн alvimoАвтор темы

  • ADN OPEN
  • Сообщений: 14
  • Карма: 3
Re: Отследить выпадающую панель SlideOut
« Ответ #2 : 08-03-2022, 04:31:19 »
Зачем?

Нужно, чтоб при клике по стрелке раскрытия выпадающей панели заполнялся список оборудования в зависимости от выбранного на чертеже объекта.
Можно, конечно, сделать заполнение списка автоматом при выборе объекта на чертеже, но это будет избыточно, менять каждый раз оборудование не нужно и иметь постоянно эту информацию тоже не нужно, поэтому и прячу контрол с перечнем оборудования в выпадающей панели.
Вот и пошел таким "нелегким" путем.

Оффлайн alvimoАвтор темы

  • ADN OPEN
  • Сообщений: 14
  • Карма: 3
Re: Отследить выпадающую панель SlideOut
« Ответ #3 : 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){...}
« Последнее редактирование: 08-03-2022, 14:44:17 от Александр Ривилис »

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
Re: Отследить выпадающую панель SlideOut
« Ответ #4 : 08-03-2022, 17:12:39 »
Как отследить событие, когда открывается выпадающая панель (SlideOut), т.е. когда нажимаешь на область панели со стрелочкой.
Что-то с ходу не получилось ничего найти подходящего. Тут надо, наверное, подключать отслеживание событий в ARXDBG/MGDDBG и смотреть что происходит при разворачивании панели.
Нужно, чтоб при клике по стрелке раскрытия выпадающей панели заполнялся список оборудования в зависимости от выбранного на чертеже объекта.
Можно, конечно, сделать заполнение списка автоматом при выборе объекта на чертеже, но это будет избыточно, менять каждый раз оборудование не нужно и иметь постоянно эту информацию тоже не нужно, поэтому и прячу контрол с перечнем оборудования в выпадающей панели.
Вот и пошел таким "нелегким" путем.
Лента для такого не предназначена. Можно, конечно, попробовать и поизвращаться. Тогда всё равно придётся делать обновление панели при выборе объекта на чертеже. Ведь раскрывающуюся часть панели можно закрепить.
А чем не устраивает вариант, когда по кнопке на ленте открывается своё диалоговое окно? В нём можно будет сделать всё что угодно.

Оффлайн Lemieux

  • ADN OPEN
  • ****
  • Сообщений: 389
  • Карма: 21
Re: Отследить выпадающую панель SlideOut
« Ответ #5 : 08-03-2022, 18:49:58 »
Попробуй Application.DocumentManager.MdiActiveDocument.Editor.SelectionAdded. Подписываешься на эвент, в методе уже динамически обновляешь ленту в зависимости от того какой объект выбран. Но это не точно.

Оффлайн alvimoАвтор темы

  • ADN OPEN
  • Сообщений: 14
  • Карма: 3
Re: Отследить выпадающую панель SlideOut
« Ответ #6 : 27-03-2022, 04:51:16 »
А чем не устраивает вариант, когда по кнопке на ленте открывается своё диалоговое окно? В нём можно будет сделать всё что угодно.

Доброго дня!
У меня сейчас так и работает, но я хочу уйти от диалогового окна.
В общем я сделал через RibbonCombo и убрал выпадающую панель и стало проще:  через событие DropDownOpened загружаю список RibbonCombo, а через CurrentChanged присваиваю значение переменной. В общем все работает.
Благодарю за помощь.

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
Re: Отследить выпадающую панель SlideOut
« Ответ #7 : 27-03-2022, 16:21:40 »
В общем я сделал через RibbonCombo
Интересное решение! Можете скриншот показать, как это выглядит у вас на панели ленты?

Оффлайн alvimoАвтор темы

  • ADN OPEN
  • Сообщений: 14
  • Карма: 3
Re: Отследить выпадающую панель SlideOut
« Ответ #8 : 28-03-2022, 16:38:46 »
В общем я сделал через RibbonCombo
Интересное решение! Можете скриншот показать, как это выглядит у вас на панели ленты?

Да, пожалуйста.




Отмечено как Решение alvimo 29-03-2022, 01:53:06

Оффлайн Дмитрий Загорулькин

  • ADN
  • *
  • Сообщений: 2531
  • Карма: 737
Re: Отследить выпадающую панель SlideOut
« Ответ #9 : 28-03-2022, 16:43:39 »
Спасибо!