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