我尝试将插入符/光标位置设置为end当我第一次打开窗口时,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>
您可以使用设置插入符位置CaretIndex
的财产TextBox
。请记住,这不是DependencyProperty
。尽管如此,您仍然可以在 XAML 中设置它,如下所示:
<TextBox Text="123" CaretIndex="{x:Static System:Int32.MaxValue}" />
请记得设置CaretIndex
after Text
财产,否则将无法工作。因此,如果您绑定到,它可能不会工作Text
就像你的例子一样。在这种情况下,只需像这样使用代码隐藏即可。
NumberOfDigits.CaretIndex = NumberOfDigits.Text.Length;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)