WPF: Definir foco do teclado em um controle de usuário? (Problemas com KeyBinding)

Eu tenho um aplicativo que tem uma janela principal que contém um monte de coisas. De tempos em tempos, o usuário fará algo em resposta ao qual eu quero exibir algo totalmente na janela principal, ocultando temporariamente o que está lá.

Eu estou fazendo isso, tornando o elemento mais externo na janela principal uma grade sem linhas ou colunas definidas. Todos os elementos da grade preencherão completamente a única célula da grade, desenhando em cima dos outros.

Minhas coisas regulares, então, estão no primeiro elemento da grade, e minha outra coisa temporária é um UserControl como o segundo elemento da grade, que normalmente é configurado Visibility = Collapsed.

Exceto pelo KeyBinding, tudo funciona bem. Quando o comando apropriado é acionado no grupo regular de coisas, a visibilidade no UserControl é definida como Visible e cobre completamente o grupo regular de coisas. Quando o usuário clica no botão Fechar no UserControl, sua visibilidade é definida como Recolhida, novamente, e desaparece e o grupo regular de coisas é revelado.

Meu problema é com KeyBindings. Eu tenho alguns definidos no UserControl - que não deve ser definido na janela principal - e eles não funcionam. Ou melhor, eles funcionam bem quando clico dentro do UserControl, mas eles não funcionam até que eu faça isso.

Preciso que eles funcionem assim que o UserControl estiver visível, sem exigir que o usuário clique ou tabule no UserControl.

Meu palpite é que isso tem algo a ver com o foco do teclado - mas não consegui encontrar uma maneira de definir o foco no UserControl. Aqui está a coisa - o único elemento dentro do UserControl é um controle de abas, todas as abas das quais são construídas dinamicamente através de modelos. Não há elementos conhecidos em tempo de compilação que eu possa referenciar explicitamente e passar para KeyBoard.Focus ().

Então, estou certo em pensar que a falta de foco está causando o problema? E se sim, como posso definir o foco para um elemento em um TabControl, quando eu nem sei quantas abas existem, e muito menos qual é o selecionado?

questionAnswers(1)

yourAnswerToTheQuestion