2015-05-29 53 views
1

我有一个主控窗口,内容控件托管其他页面。其中一个页面有一个文本框和一个GridView。加载该页面时,我想将焦点置于文本框上。如果我在代码隐藏中执行此操作,那么该框不会获得焦点。如果我这样做在XAML使用专注于文本框不能正常工作

FocusManager.FocusedElement="{Binding ElementName=DrugScanTextBox}" 

那么我可以看到在文本框中光标的页面,但它不闪烁,按键并不在框中显示。

我唯一的猜测是gridview在加载并绘制数据之后,正在重点关注。

有关如何解决此问题的任何想法?

回答

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> 

。 。 。

+0

我尝试了类似的事件,但事实并没有改变。必须有一个更好的方式来做到这一点... – Sam

+2

哈哈在WPF焦点是PITA –