TextBox가 변경 될 때 메서드를 호출해야하지만 TextBox.Caret
은 DependencyProperty
이 아니므로 바인딩 할 가능성이 없습니다. 어떻게 캐럿 위치가 변경되는지 알고 싶습니까?TextBox 캐럿이 변경되면 이벤트를 발생시킬 수 있습니까?
2
A
답변
4
의 SelectionChanged
이벤트를 처리 할 수 있습니다. 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...
}
을, 화살표 키를 사용하여 커서를 움직이거나 마우스로 커서 위치를 변경하는 경우
이 텍스트 상자에서이 동작이 필요한 경우 012를 기반으로 자신 만의 clas를 만들 수도 있습니다과 같은 방식으로 나만의 이벤트를 만듭니다.
이 테스트는 WPF 프로젝트에서 수행되었지만 Silverlight 프로젝트에서도 작동합니다.
0
허용되는 대답은 사실 정확하지만 예를 들어 글자가 하나이고 왼쪽에서 오른쪽으로 선택하면 CaretIndex
은 바뀌지 않으므로 CaretIndex
의 값은 1
이고, 하지만 값은 0
입니다.
자신 만의 대리인을 만들어 이벤트를 처리 할 수 있습니까? – MethodMan