我正在开发一个使用大量auf文本框的应用程序。如果他们获得焦点,则插入符号将位于文本框的第一个位置。即使已经存在文本。 我正在寻找一种解决方案,以便在他们获得焦点时将插入符号设置在FOR ALL Texbox文本的末尾。
我知道,我可以处理GotFocus()-Event,然后手动设置位置。但是,有没有更聪明的选择?
答案 0 :(得分:1)
最简单的方法是使用您所说的事件处理程序。
private void TextBox_GotFocus(object sender, RoutedEventArgs e)
{
TextBox textBox = sender as TextBox;
textBox.CaretIndex = textBox.Text.Length;
}
然后将此事件处理程序分配给每个TextBox
。
通用CaretIndex
中的TextBox
不是属性。因此,更智能的解决方案至少需要创建从TextBox
继承的自定义控件。您可以通过这种方式将CaretIndex
设置为属性。然后只需在xaml中将Style.Triggers
与属性IsFocused
一起使用。