Кажется, что когда приложение WPF запускается, ничто не имеет фокуса.
Это действительно странно. Любой другой фреймворк, который я использовал, делает именно то, что вы ожидаете: сначала фокусируется на первом элементе управления в порядке вкладок. Но я подтвердил, что это WPF, а не только мое приложение - если я создаю новое окно и просто помещаю в него TextBox и запускаю приложение, TextBox не будет иметь фокуса, пока я не нажму на него или не нажму Tab , Тьфу.
Мое настоящее приложение сложнее, чем просто текстовое поле. У меня есть несколько слоев UserControls в UserControls. Один из этих UserControls имеет обработчики Focusable = "True" и KeyDown / KeyUp, и я хочу, чтобы он имел фокус, как только откроется мое окно. Хотя я все еще новичок в WPF, и мне не очень повезло, когда я понял, как это сделать.
Если я запускаю свое приложение и нажимаю клавишу Tab, то фокус переходит к моему фокусируемому элементу управления, и он начинает работать так, как я хочу. Но я не хочу, чтобы мои пользователи нажимали клавишу Tab, прежде чем они смогут начать использовать окно.
Я поиграл с FocusManager.FocusedElement, но я не уверен, какой элемент управления для него установить (Окно верхнего уровня? Родитель, который содержит фокусируемый элемент управления? Сам фокусируемый элемент управления?) Или что установить это к.
Что мне нужно сделать, чтобы у моего глубоко вложенного элемента управления был начальный фокус, как только откроется окно? Или еще лучше: сфокусировать первый фокусируемый элемент управления в порядке табуляции?