我有一个主窗口,其中包含一个托管其他页面的内容控件。其中一个页面有一个文本框和一个gridview。当该页面加载时,我想将焦点设置在文本框上。如果我在代码隐藏中执行此操作,则该框不会获得焦点。如果我使用
在XAML中为页面执行此操作FocusManager.FocusedElement="{Binding ElementName=DrugScanTextBox}"
然后我可以在文本框中看到光标但它没有闪烁,并且按钮没有显示在框中。
我唯一的猜测是,在加载并绘制数据后,gridview将重点关注。
有关如何解决此问题的任何想法?
答案 0 :(得分:0)
我添加了一个布尔属性'FocusNow',并在我的后台工作程序加载事件结束时将其设置为true,然后在用户控件周围添加此边框样式。这样,在完成所有内容加载后,它会将焦点设置为网格(在您的案例文本框中)。
<Border Margin="10" >
<Border.Style>
<Style>
<Style.Triggers>
<DataTrigger Binding="{Binding FocusNow}" Value="True">
<Setter Property="FocusManager.FocusedElement" Value="{Binding ElementName=xamDataGrid1}" />
</DataTrigger>
</Style.Triggers>
</Style>
</Border.Style>
。 。