我需要在TextBox更改时调用方法,但TextBox.Caret
不是DependencyProperty
,因此没有可能绑定它。如何知道插入符号位置何时发生变化?
答案 0 :(得分:3)
您可以尝试处理SelectionChanged
的{{1}}事件。
在XAML中,您可以像这样定义文本框:
TextBox
接下来,编写处理游标更改的方法:
<TextBox x:Name="myTextBox" SelectionChanged="TextBox_SelectionChanged" />
它会在每次插入符号更改时触发,因此在获得焦点时,使用箭头键移动光标,使用鼠标等更改光标位置。
如果您在多个文本框中需要此行为,您还可以根据private void TextBox_SelectionChanged(object sender, RoutedEventArgs e)
{
int caretPosition = myTextBox.CaretIndex;
//put your handling code here...
}
创建自己的clas并以类似方式创建自己的事件。
我在WPF项目中对此进行了测试,但它也适用于Silverlight项目。
答案 1 :(得分:0)
虽然接受的答案事实上是正确的,但请注意CaretIndex
如果您有一个字母并且从左到右选择CaretIndex
并不会改变:1
如果值为0
,则会发现它的值为MySQL
。