Вы можете попытаться обработать SelectionChanged
событие TextBox
.
В XAML вы определяете текстовое поле следующим образом:
<TextBox x:Name="myTextBox" SelectionChanged="TextBox_SelectionChanged" />
Далее вы пишете метод обработки изменения курсора:
private void TextBox_SelectionChanged(object sender, RoutedEventArgs e)
{
int caretPosition = myTextBox.CaretIndex;
//put your handling code here...
}
Он срабатывает при каждом изменении каретки, поэтому при получении фокуса, при перемещении курсора с помощью клавиш со стрелками, при изменении положения курсора с помощью мыши и т. Д.
Если вам нужно такое поведение в нескольких текстовых полях, вы также можете просто создать свои собственные классы на основе TextBox
и аналогичным образом создать собственное событие.
Я протестировал это в проекте WPF, но он должен работать и в проекте Silverlight.