TextBox сфокусирован, но не может печатать, пока я не нажму - XAML / C # / WPF - PullRequest
0 голосов
/ 05 ноября 2018

У меня интересная ситуация, когда я установил фокус на поле поиска, используя: FocusManager.FocusedElement="{Binding ElementName=SearchBox}", который я нашел здесь: Установите фокус на текстовое поле в xaml wpf

Хорошо, что окно поиска на самом деле сфокусировано (у меня есть триггер, который выполняет действие с фокусом), но я не могу набрать текстовое поле, пока не нажму на текстовое поле.

Мое текстовое поле очень простое:

<TextBox x:Name="SearchBox"
         Grid.Row="0"
         style="{StaticResource SearchBox}" />

Любая идея, как я могу позволить пользователю печатать сразу, когда они открывают элемент управления?

Ответы [ 2 ]

0 голосов
/ 06 ноября 2018

Вы также можете использовать это с тегом <window> на странице xaml

<Window x:Class="WpfApplication30.MainWindow"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
Title="MainWindow" Height="350" Width="525" 
FocusManager.FocusedElement="{Binding ElementName=SearchBox}">
<StackPanel>
<TextBox x:Name="textBox1"/>
<TextBox x:Name="SearchBox"
style="{StaticResource SearchBox}" />
</StackPanel>
</Window>
0 голосов
/ 05 ноября 2018

см. Следующую ссылку: https://docs.microsoft.com/en-us/dotnet/api/system.windows.input.focusmanager.focusedelement?redirectedfrom=MSDN&view=netframework-4.7.2#System_Windows_Input_FocusManager_FocusedElement

Особенно замечания:

FocusedElement - это элемент, который имеет логический фокус для конкретной области фокусировки. Этот объект может иметь или не иметь фокус клавиатуры . Фокус клавиатуры относится к элементу, который получает ввод с клавиатуры. Для получения дополнительной информации о фокусе, фокусе клавиатуры и логической фокусировке см. Обзор ввода.

и: https://docs.microsoft.com/en-us/dotnet/api/system.windows.input.focusmanager?redirectedfrom=MSDN&view=netframework-4.7.2

Элемент с логическим фокусом не обязательно имеет клавиатуру фокус, но элемент с фокусом клавиатуры будет иметь логический фокус. Это Можно определить область фокусировки в рамках области фокусировки. В этом В этом случае родительская область фокусировки и дочерняя область фокуса могут иметь FocusManager.FocusedElement

В следующем посте вы найдете пример, как с этим справиться: https://stackoverflow.com/a/20299923/9295125

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...