web-dev-qa-db-fra.com

WPF ListView no ScrollBar si la hauteur définie sur Auto

Bonjour, j'ai une liste de liste qui lie à une collection. J'ai défini la hauteur de la liste de liste pour qu'il occupe tout l'espace de la région. Cependant, il n'y a pas de barre de défilement après avoir défini la hauteur à l'automobile. Si je lui donne une hauteur, la barre de défilement apparaîtrait.

le balisage est à peu près comme ce qui suit

<Grid>
   <StackPanel>
      <Expander>
          <DataGrid>
      <Expander>
          <ListView>
23
Eatdoku

J'ai une hunch que votre ListView est à l'intérieur d'un panneau qui lui permet de se développer verticalement sans limite.

Si vous mettez un ListView à l'intérieur d'un StackPanel, par exemple, la hauteur ListView peut dépasser la hauteur du StackPanel. Le ListView a augmenté sa hauteur pour montrer tous ses éléments, dans la mesure où il est concerné, donc pas de barre de défilement.

Cependant, si vous changez que StackPanel à un Grid, où les contrôles tentent automatiquement de s'adapter à l'intérieur de cette zone, le ListView aura automatiquement une barre de défilement lorsqu'il contient plus d'articles que Il peut afficher.

Cela sera probablement résolu tout simplement en ajustant votre mise en page contenant le ListView.

57
Joel B Fant

Au lieu de définir

<RowDefinition Height="auto"/>

ensemble:

<RowDefinition Height="1*"/>
9
Sandeep

Pourquoi devrait-il montrer une barre de défilement s'il n'y a rien à faire défiler?

Si vous souhaitez remplacer tout comportement par défaut, vous pouvez définir ScrollViewer.VerticalScrollBarVisibility="Visible" sur la liste de liste.

4
H.B.