WPF: Ustawianie ostrości klawiatury w kontroli użytkownika? (Problemy z wiązaniem klawiszy)

Mam aplikację, która ma główne okno zawierające kilka rzeczy. Od czasu do czasu użytkownik zrobi coś, na co chcę wyświetlić coś zupełnie innego w głównym oknie, tymczasowo ukrywając to, co tam jest.

Robię to, ustawiając najbardziej zewnętrzny element w głównym oknie jako Siatkę bez zdefiniowanych wierszy lub kolumn. Każdy element w siatce będzie całkowicie wypełniał jedną pojedynczą komórkę w siatce, opierając się na innych.

Moje regularne rzeczy są więc w pierwszym elemencie siatki, a moje tymczasowe coś innego to UserControl jako drugi element siatki, który zwykle jest ustawiony jako Visibility = Collapsed.

Z wyjątkiem powiązania z kluczem wszystko działa dobrze. Gdy odpowiednie polecenie zostanie wyzwolone w zwykłej wiązce rzeczy, widoczność na UserControl jest ustawiona na Visible, i całkowicie pokrywa zwykłą grupę rzeczy. Gdy użytkownik kliknie przycisk zamykania na UserControl, jego widoczność jest ponownie ustawiona na Zwinięty, i znika, a zwykły zbiór rzeczy zostaje ujawniony.

Mój problem dotyczy KeyBindings. Mam kilka zdefiniowanych w UserControl - które nie powinny być zdefiniowane w głównym oknie - i nie działają. Lub raczej działają dobrze po kliknięciu wewnątrz UserControl, ale nie działają, dopóki tego nie zrobię.

Potrzebuję ich do pracy, gdy tylko UserControl stanie się widoczny, bez konieczności klikania lub zakładania użytkownika w odpowiednie UserControl.

Domyślam się, że ma to coś wspólnego z koncentracją na klawiaturze - ale nie udało mi się znaleźć sposobu na ustawienie ostrości na UserControl. Oto rzecz - jedynym elementem w UserControl jest kontrolka kart, której wszystkie zakładki są dynamicznie tworzone za pomocą szablonów. W czasie kompilacji nie są znane żadne elementy, które można jawnie odwołać i przekazać do KeyBoard.Focus ().

Czy mam rację, że problem powoduje brak koncentracji? A jeśli tak, jak mogę ustawić fokus na element w TabControl, gdy nawet nie wiem, ile jest zakładek, nie mówiąc już o tym, który jest zaznaczony?

questionAnswers(1)

yourAnswerToTheQuestion