我在那个主题上搜索了很多,但无法真正找到解决方案,无需使用任何代码。我知道有些人会说使用代码隐藏相关的事情是完全没问题,但我想避免它。WPF在运行时没有代码的情况下设置键盘焦点
我有一个用户控件,它显示一个“对话框”,带有单个文本框和一个确定按钮。该对话框是一个简单的用户控件,放在所有其他对象之上。默认情况下,usercontrols可见性设置为折叠状态。如果usercontrol可见,我想将keyboardfocus设置为对话框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>
但这也不工作。触发器被触发,但文本框没有获得焦点。我真的很感激这方面的任何建议。提前致谢!
这是灵魂!我在你的代码中将** _ this **更改为我的用户控件的名称,它的效果非常好!非常感谢你。 – 2013-03-05 10:08:56