Я много искал эту тему, но не смог найти решение для этого без использования кода. Я знаю, что некоторые скажут, что использование кода для этого взгляда связано со всеми вещами, но тем не менее я бы хотел его избежать.WPF настройка клавиатуры-фокус без кода позади во время выполнения
У меня есть usercontrol, который показывает «диалог» с одним текстовым полем и кнопкой OK. Этот диалог представляет собой простой пользовательский контроль, который размещается поверх всех остальных. По умолчанию видимость usercontrols будет свернута. Я хотел бы установить keyboardfocus в текстовое поле в usercontrol диалогового окна, если usercontrol становится видимым. Есть ли способ сделать это полностью в xaml? Поскольку мой диалог-контроль не виден в то время, когда элемент управления загружается, просто установив
FocusManager.FocusedElement="{Binding ElementName=tbID}"
не будет работать. Я попытался использовать какой-то видимый триггер видимости:
<TextBox Grid.Column="3"
Grid.Row="5"
Name="tbID"
VerticalAlignment="Center">
<TextBox.Style>
<Style TargetType="{x:Type TextBox}">
<Style.Triggers>
<Trigger Property="Visibility" Value="Visible">
<Setter Property="FocusManager.FocusedElement" Value="{Binding ElementName=tbID}" />
</Trigger>
</Style.Triggers>
</Style>
</TextBox.Style>
</TextBox>
но это тоже не работает. Триггер запускается, но текстовое поле не получает фокуса. Я был бы очень признателен за любые предложения по этому поводу. Заранее спасибо!
Это душа! Я изменил ** _ этот ** в вашем коде на имя моего usercontrol, и он отлично работает! Большое спасибо. –