Dodatkowa zakładka na ribbonie

0

Cześć,

zastanawiam się w jaki sposób najlepiej zrealizować funkcjonalność podobną do tych obecnych w pakiecie Office. Przykładowo gdy klikamy w obrazek/tabelkę dokładana jest do ribbona dodatkowa zakładka z opcjami np. do edycji obrazka.

Chciałbym coś takiego zrealizować dla kontrolek znajdujących się w formie.
Przykładowo po kliknięciu w grid w tej dodatkowej zakładce byłyby np. opcje do sortowania, predefiniowane filtry do wyboru itd.

Zwątpiłem w momencie, w którym zacząłem myśleć jak to zaimplementować. Najpierw pomyślałem po prostu o użyciu eventów OnFocus / LostFocus tylko, że w tym wypadku po kliknięciu w coś w tym menu stracę focus na kontrolce, więc menu sie ukryje, a tego bym nie chciał.

screenshot-20201209155927.png

1

No to może inaczej - stwórz jakąś funkcję, która przywraca menu do domyślnej postaci.
Do Onclick wybranej kontrolki dodaj takie czynności:

  1. wywołanie funkcji resetującej ribbona
  2. dodanie treści specyficznych dla danej kontrolki do wstążki.

Teraz wyjście z kontrolki spowoduje, że dodatkowa zakładka w ribbonie nadal będzie widoczna/aktywna.

Musisz jeszcze pomyśleć, kiedy ją schować. Tutaj ciężko coś konkretnego doradzić, bo nie znam dokładnie zachowania się Twojej aplikacji, ale sam znasz najlepiej scenariusz jej obsługi. Na pewno wejście w pewne opcje menu powoduje, że przestajesz pracować z daną kontrolką Tak samo jak np. wybranie jakiejś innej powoduje, że tamta już przestaje być aktywna. Wtedy wykonujesz dwa podane powyżej kroki - resetujesz menu oraz dodajesz informacje pasujące do aktywnie wybranej kontrolki (jeśli taka akurat będzie, bo może się zdarzyć, że żadna nie zostanie wybrana - wtedy masz wolną przestrzeń).

Oczywiście pamiętaj, żeby gdzieś trzymać informację o tym, która kontrolka jest aktualnie aktywna. Bo jak ją klikniesz ponownie to może się znowu onClick wywołać - dlatego trzeba sprawdzić, czy nastąpiła zmiana aktywnej kontrolki, czy pracujesz z tą samą. W przypadku braku zmiany nie rób niczego - ani nie resetuj paska, ani niczego do niego nie dodawaj.

1

@cerrato: rzeczywiście, od tej strony wygląda to prościej ;) dziękuję za naprowadzenie na właściwe tory.

1 użytkowników online, w tym zalogowanych: 0, gości: 1