use*_*969 90 wpf textbox focus
尽管在这个论坛和其他人的一些帖子,我找不到一些东西,告诉我如何把重点放在一个TextBox
.
我有一个带有许多标签和textBoxes的userControl.加载表单时,我希望特定的textBox具有焦点.
我已经设置了tabIndex,但似乎没有用.
有什么建议?
Jul*_*ain 174
您可以使用FocusManager.FocusedElement
附加属性来实现此目的.这是一段代码,默认情况下将焦点设置为TxtB.
<StackPanel Orientation="Vertical" FocusManager.FocusedElement="{Binding ElementName=TxtB}">
<TextBox x:Name="TxtA" Text="A" />
<TextBox x:Name="TxtB" Text="B" />
</StackPanel>
Run Code Online (Sandbox Code Playgroud)
TxtB.Focus()
如果您不想在XAML中执行此操作,也可以在代码隐藏中使用.
Max*_*Max 28
您可以直接在TextBox上应用此属性:
<TextBox Text="{Binding MyText}" FocusManager.FocusedElement="{Binding RelativeSource={RelativeSource Self}}"/>
Run Code Online (Sandbox Code Playgroud)
我是新手使用WPF并阅读上面的例子我有类似的经验尝试使用给出的xaml代码示例将焦点设置为文本框,即上面的所有示例都不起作用.
我发现的是我必须将FocusManager.FocusElement放在页面元素中.我假设如果你使用Window作为父元素,这可能也会有效.无论如何,这是适合我的代码.
<Page x:Class="NameOfYourClass"
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
mc:Ignorable="d"
Title="Title"
Height="720"
Width="915"
Background="white"
Loaded="pgLoaded"
FocusManager.FocusedElement="{Binding ElementName=NameOfYourTextBox}">
<!-- Create child elements here. -->
</Page>
Run Code Online (Sandbox Code Playgroud)