将焦点设置在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>
我希望这会有所帮助。
对不起,我没有试图专注于TxtB,我想这让我感到困惑,因为我把它包含在那里。我的MyWidget里面有几个小部件,其中一个是带有x:Name = UnderTextBoxName的TextBox - 我怎样才能让焦点开始在那个上? – apokryphos 2012-07-28 20:40:38
这只是一个例子,如果你想这么做,那么只需设置'FocusedElement =“{x:Reference Name = UnderTextBoxName}”'我已经更新了答案。 – ethicallogics 2012-07-29 03:27:10
我不认为这将工作,如果我有多个MyWidgets,因此多个文本框与x:name = UnderTextBoxName?是否有可能做一些像SomeWidget.UnderTextBoxName的引用? – apokryphos 2012-07-29 03:47:40