2017-07-04 4 views
0

Dans listbox contient plusieurs listitem, il affichera les 5 premiers enregistrements dans la listbox en fonction de la hauteur de la liste. Si je fais défiler le 7ème enregistrement de l'élément de liste de liste ou n'importe quel en première position. si l'utilisateur défiler la ListBoxItem, je dois trouver la zone de liste élément sélectionné quelle position est visible (avec dans 5 dossiers d'affichage dans listbox en fonction de la hauteur)Comment définir la position de la zone de texte Utilisation de la position relative?

Edit:

lstbxindex.ItemContainerGenerator.ContainerFromItem(lstbxindex.SelectedItem); 

      System.Windows.Point relativePoint = lstbxindex.TransformToVisual(listBoxItem) 
           .Transform(new System.Windows.Point(0, 0)); 

En utilisant ce code que je suis la position relative de la listbox selecteditem. Si l'utilisateur fait défiler l'élément de la liste déroulante après le défilement, il doit superposer la zone de texte à la position de l'élément sélectionné dans la zone de liste. Donc je vérifie l'état comme,

Listbox firstItem x=-2,y-2 
Listbox secondItem x=-2,y=-56 
Listbox thirdItem x=-2,y=-110 
etc 
relative position y increasing 54. 

donc je vérifier

if(relativePoint.Y==56) 
{ 
**//how to set the textbox to that relative position in listbox** 
} 
+0

vous voulez dire faire défiler le clavier ou la souris? –

+0

@sushil Mate défiler vers le bas par la souris. – user688

+0

donc vous avez la position relative de l'élément sélectionné maintenant vous voulez définir la zone de texte sur cet emplacement? –

Répondre

0

En WinForms vous pourriez accéder à l'élément visible en haut à l'aide Listbox.TopIndex propriété s'il vous plaît vérifier si elle est mise en œuvre WPF !! ci-dessous est l'exemple de code dans WINFORM App.

lstbxindex.Items[lstbxindex.TopIndex].ToString()