当我第一次打开窗口时,我尝试将插入符号/光标位置设置为 WPF 文本框中字符串值的结尾。当窗口打开时,我使用 FocusManager 将焦点设置在文本框上。
似乎没有什么效果。有什么想法吗?
请注意,我使用的是 MVVM 模式,并且我的代码中仅包含了部分 XAML。
<Window
FocusManager.FocusedElement="{Binding ElementName=NumberOfDigits}"
Height="400" Width="800">
<Grid>
<Grid.ColumnDefinitions>
<ColumnDefinition/>
</Grid.ColumnDefinitions>
<Grid.RowDefinitions>
<RowDefinition/>
<RowDefinition/>
</Grid.RowDefinitions>
<TextBox Grid.Column="0" Grid.Row="0"
x:Name="NumberOfDigits"
IsReadOnly="{Binding Path=IsRunning, Mode=TwoWay}"
VerticalContentAlignment="Center"
Text="{Binding Path=Digits, Mode=TwoWay, UpdateSourceTrigger=PropertyChanged}"/>
<Button Grid.Column="0" Grid.Row="1"
Margin="10,0,10,0"
IsDefault="True"
Content="Start"
Command="{Binding StartCommand}"/>
</Grid>
</Window>
最佳答案
您可以使用 TextBox
的 CaretIndex
属性设置插入符位置。请记住,这不是 DependencyProperty
。尽管如此,您仍然可以在 XAML 中设置它,如下所示:
<TextBox Text="123" CaretIndex="{x:Static System:Int32.MaxValue}" />
请记住设置 CaretIndex
after Text
属性,否则它将不起作用。因此,如果您像示例中那样绑定(bind)到 Text
,它可能不起作用。在这种情况下,只需使用像这样的代码隐藏即可。
NumberOfDigits.CaretIndex = NumberOfDigits.Text.Length;
关于wpf - 将插入符号/光标位置设置为字符串值 WPF 文本框的末尾,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2888907/