Festlegen der Caret-Position in einem WPF-Text Editierbare ComboBox

8

Ich habe nach einer ähnlichen Frage gesucht und konnte nichts finden. .Caret scheint nicht verfügbar zu sein, und ich weiß nicht, wie ich auf die Textbox oder das Steuerelement, das in die Combobox eingebettet ist, klicken kann.

    
DrLazer 21.02.2011, 15:41
quelle

2 Antworten

10

Sie müssen das Steuerelement PART_EditableTextBox aus der Steuerelementvorlage der Kombinationsbox abrufen. Der einfachste Weg wäre, OnApplyTemplate in einer Ableitung von ComboBox und verwenden Sie diese Ableitung dann, wo auch immer Sie benötigen ein Kombinationsfeld mit diesem erweiterten Verhalten.

%Vor%

Sobald Sie das Textfeld haben, können Sie die Caret-Position festlegen, SelectionStart an den Ort, an dem das Caret angezeigt werden soll, und legen Sie SelectionLength auf Null setzen.

%Vor%     
Jeff Yates 21.02.2011, 15:43
quelle
3

Ein noch einfacherer Weg, wenn Sie nicht mit abgeleiteten Klassen umgehen wollen und nur die Einfügemarke für eine beliebige ComboBox setzen wollen, ist, wenn Sie das Textfeld aus der Vorlage holen (ähnlich der akzeptierten Antwort) brauche es und aktualisiere dann einfach die Caret-Position.

%Vor%     
Jeffrey Harmon 27.10.2017 01:35
quelle

Tags und Links