Gibt es irgendeine chance, zu erhöhen-Ereignis beim Textfeld-Cursor geändert?
Ich eine Methode aufrufen müssen, wenn die TextBox sich ändert, aber TextBox.Caret
ist nicht ein DependencyProperty
, und weil der, dass es keine Möglichkeit es zu binden. Wie zu wissen, Wann die Cursor-position verändert?
- könnte Sie erstellen Sie Ihre eigenen Delegierten auf das Ereignis zu behandeln
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie versuchen, mit
SelectionChanged
Veranstaltung derTextBox
.In XAML definieren Sie Ihren text-box wie diese:
Nächsten schreiben Sie die Methode der Handhabung des cursor ändern:
Feuert Sie auf jeden Cursor ändern, also auf die erste konzentrieren, bewegen den cursor mit den Pfeiltasten zum ändern der cursor-position mit Maus etc.
Wenn Sie brauchen, dieses Verhalten in mehreren Textfeldern, Sie können auch einfach erstellen Sie Ihre eigenen clas basierend auf
TextBox
und erstellen Sie Ihre eigene Veranstaltung in einer ähnlichen Weise.Ich habe getestet dieses in ein WPF-Projekt, aber es sollte funktionieren, im Silverlight-Projekt als auch.
Während die akzeptierte Antwort ist sachlich richtig, bitte beachten Sie, dass
CaretIndex
nicht ändern, wenn, zum Beispiel, haben Sie einen Buchstaben und wählen Sie es von Links nach rechts: Sie erwarten würden, dieCaretIndex
den Wert1
, aber Sie werden feststellen, es hat den Wert0
.