2010-04-13 5 views

Répondre

6

Vous pouvez savoir quand VerticalOffset change en ajoutant un gestionnaire à l'événement ScrollViewer.ScrollChanged à votre TextBox. Quelque chose comme ceci:

<TextBox AcceptsReturn="True" ScrollViewer.ScrollChanged="TextBox_ScrollChanged" /> 

Le TextBox utilise un ScrollViewer interne, il est donc l'événement ScrollChanged se propagera jusqu'au TextBox (où vous pouvez le manipuler). Les arguments d'événement incluent des informations sur ce qui a changé, tel que VerticalChange (le montant que le contrôle a fait défiler verticalement).

private void TextBox_ScrollChanged(object sender, ScrollChangedEventArgs e) { 
    System.Diagnostics.Debug.WriteLine(string.Format("************ {0}", e.VerticalChange)); 
} 
+0

Y at-il un moyen d'ajouter le gestionnaire dans le code? J'ai essayé de faire ceci: this.ScrollViewer.ScrollChangedEvent + = OnVerticalOffsetChanged; Mais j'ai une erreur. – Justin

+2

Vous auriez besoin d'appeler textBox.AddHandler (ScrollViewer.ScrollChanged, nouveau ScrollChangedEventHandler (this.TextBox_ScrollChanged)) – CodeNaked

+0

Merci Tom Goff! – Justin

Questions connexes