私はそのトピックについてよく検索しましたが、コードビハインドを使用せずにこれに対する解決策を実際に見つけることができませんでした。このビューに関連するものにコードビハインドを使用することはまったく問題ないと言う人もいると思いますが、それでも避けたいと思います。
単一のテキストボックスと[OK]ボタンを備えた「ダイアログ」を表示するユーザーコントロールがあります。そのダイアログは、他のすべての上に配置される単純なユーザーコントロールです。デフォルトでは、ユーザーコントロールの可視性は折りたたまれているように設定されています。ユーザーコントロールが表示される場合、ダイアログユーザーコントロールのテキストボックスにキーボードフォーカスを設定したいと思います。これを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>
しかし、これもうまくいきません。トリガーは起動されますが、テキストボックスはフォーカスを取得しません。私はそれについて何か提案をいただければ幸いです。前もって感謝します!