2010-10-08 7 views
0

J'ai une liste d'environ 100 articles. J'aimerais sortir tous les éléments de la page, l'un sous l'autre. Peut-être que 25 éléments environ seront visibles au départ, et lorsque les utilisateurs défileront, le reste de la liste sera visible.Comment faire un ListBox plus long que la page?

Le problème ici est que je ne veux pas utiliser la barre de défilement de la zone de liste - Je veux utiliser la barre de défilement de la page. (Par page, je veux dire la page aspx qui contient l'objet Silverlight.) Je peux facilement enlever la barre de défilement sur le ListBox, mais seulement les 25 premiers éléments sont visibles. Et même si je rend la taille de la ListBox arbitrairement grande, la ListBox sera seulement aussi grande que la zone visible de la page - de sorte que même si je fais défiler la page elle-même, il n'y a plus rien à voir!

Pour clarifier ce que je suis en train de faire - imaginer une simple page HTML avec une liste d'éléments:

<ul> 
    <li>Item One</li> 
    <li>Item Two</li> 
    ... 
    </li>Item One Hundered</li> 
</ul> 

Vous ne voyez que quelques-uns des éléments au départ, mais lorsque vous faites défiler la page, le reste devenir visible. J'essaie de faire quelque chose de similaire dans Silverlight. ListBox est-il le mauvais contrôle à utiliser?

Répondre

1

Si vous êtes l'affichage des éléments et ne nécessitent pas l'interactivité, vous voulez utiliser un ItemsControl. Si vous avez besoin de l'interactivité d'un ListBox alors je crois que vous voulez structurer comme si (non testé)

<ScrollViewer> 
    <StackPanel> 
     <ListBox VerticalAlignment="Stretch" /> 
    </StackPanel> 
<ScrollViewer> 

Cela devrait vous donner ListBox espace infini et donc il étirer la taille max.

+0

Cela ne crée pas un contrôle ListBox plus long que la partie visible de la page. Je soupçonne que ce que j'essaie de faire n'est pas possible dans Silverlight. – MCS

+0

Je suis presque sûr que c'est possible. Vous devez vous assurer qu'il n'y a aucun contrôle au-dessus de votre 'ListBox' qui a une hauteur fixe. Si aucun contrôle n'a une hauteur fixe (ceci inclut l'application elle-même), alors il faut l'étendre pour remplir le nécessaire. Vous devez également vérifier que votre code HTML permet à l'application Silverlight de se développer au besoin. – Stephan

Questions connexes