将焦点设置在XAML中的子控件文本框中

将焦点设置在XAML中的子控件文本框中

问题描述:

如何将默认焦点设置为位于当前视图中的子控件的文本框?将焦点设置在XAML中的子控件文本框中

<StackPanel Orientation="Vertical" FocusManager.FocusedElement="{Binding ElementName=SomeWidget.UnderTextBoxName}"> 
    <MyWidget x:Name="SomeWidget" Text="A" /> 
    <TextBox x:Name="TxtB" Text="B" /> 
</StackPanel> 

...认为可能会工作,但没有运气?

使用FocusedElement="{x:Reference Name=UnderTextBoxName}"。不需要绑定。

<StackPanel Orientation="Vertical" > 
     <MyWidget x:Name="SomeWidget" Text="A" FocusManager.FocusedElement="{x:Reference Name=UnderTextBoxName}"/> 
     <TextBox x:Name="TxtB" Text="B" /> 
</StackPanel> 

我希望这会有所帮助。

+0

对不起,我没有试图专注于TxtB,我想这让我感到困惑,因为我把它包含在那里。我的MyWidget里面有几个小部件,其中一个是带有x:Name = UnderTextBoxName的TextBox - 我怎样才能让焦点开始在那个上? – apokryphos 2012-07-28 20:40:38

+0

这只是一个例子,如果你想这么做,那么只需设置'FocusedElement =“{x:Reference Name = UnderTextBoxName}”'我已经更新了答案。 – ethicallogics 2012-07-29 03:27:10

+0

我不认为这将工作,如果我有多个MyWidgets,因此多个文本框与x:name = UnderTextBoxName?是否有可能做一些像SomeWidget.UnderTextBoxName的引用? – apokryphos 2012-07-29 03:47:40