ScrollViewer de ne pas travailler avec StackPanel
Côté gauche de ma page j'ai une verticale StackPanel avec les éléments suivants:
- 1 TextBlock
- 1 vertical StackPanel avec de multiples éléments qui remplit l'espace disponible
Je suis en train de faire la deuxième StackPanel défilement avec un ScrollViewer élément, mais sans succès. Si je définis le ScrollViewer Hauteur d'une certaine valeur, il fonctionne, mais je ne veux pas parce que je le veux remplir tout l'espace vertical disponible.
Je pense à appliquer ScrollViewer Hauteur dans le code de lecture StackPanel calculé la Hauteur, mais cela ne semble pas la bonne façon de le faire.
J'ai essayé aussi de lier Hauteur et ActualHeight à StackPanel Hauteur de propriété, mais sans résultats.
<ScrollViewer
Grid.Row="1"
VerticalAlignment="Top"
VerticalScrollBarVisibility="Auto"
HorizontalScrollBarVisibility="Disabled"
ScrollViewer.VerticalScrollMode="Enabled"
ScrollViewer.HorizontalScrollMode="Disabled"
ScrollViewer.ZoomMode="Disabled">
<StackPanel x:Name="sptest" Orientation="Vertical">
<TextBlock Style="{StaticResource PageHeaderTextStyle}">test1</TextBlock>
<TextBlock Style="{StaticResource PageHeaderTextStyle}">test2</TextBlock>
<TextBlock Style="{StaticResource PageHeaderTextStyle}">test3</TextBlock>
<TextBlock Style="{StaticResource PageHeaderTextStyle}">test4</TextBlock>
<TextBlock Style="{StaticResource PageHeaderTextStyle}">test5</TextBlock>
<TextBlock Style="{StaticResource PageHeaderTextStyle}">test6</TextBlock>
<TextBlock Style="{StaticResource PageHeaderTextStyle}">test7</TextBlock>
<TextBlock Style="{StaticResource PageHeaderTextStyle}">test8</TextBlock>
<TextBlock Style="{StaticResource PageHeaderTextStyle}">test9</TextBlock>
<TextBlock Style="{StaticResource PageHeaderTextStyle}">test10</TextBlock>
<TextBlock Style="{StaticResource PageHeaderTextStyle}">test11</TextBlock>
<TextBlock Style="{StaticResource PageHeaderTextStyle}">test12</TextBlock>
</StackPanel>
</ScrollViewer>
Côté j'ai aussi un GridView de remplissage horizontale de l'espace disponible et il automatiquement la barre de défilement. Je n'ai pas le définir et il apears lorsque cela est nécessaire. Il est étrange que StackPanel ne se comporte pas comme je veux. Ce que je fais mal?
MODIFIER
J'ai trouvé ce DONC, la question. C'est sur WPF et pas WinRT, mais il est probablement le même problème. Il dit:
Vous ne pouvez pas, sans fixer la hauteur de la StackPanel. Il est conçu pour croître indéfiniment dans un seul sens. Je conseille d'utiliser un autre Panneau
J'ai changé mon StackPanel à une Grille (je ne voulais pas parce que des lignes de définitions depuis que j'ai ne veulent qu'une seule colonne), mais ScrollViewer ne fonctionne pas non plus.
Je vous remercie pour votre temps. Je suis allé dormir, me suis réveillé ce matin et a réussi à le résoudre en changeant son élément parent (vertical StackPanel) avec une Grille (mon code est plein de grilles de maintenant...)
Dans ma question, j'ai dit que j'avais une Grille avec deux lignes, mais je me trompais, c'était un StackPanel, la réponse est dans ma question.- Dois-je modifier la question et d'y répondre ou de le supprimer?
Vous pouvez toujours répondre à votre propre question, il va aider une autre personne qui avait le même problème. 🙂 Je pense que vous devriez le faire. Je suis content que vous l'avez résolu par vous-même. 🙂
Fait. Je ne sais toujours pas pourquoi ça marche avec une Grille en tant que parent et non pas avec un StackPanel donc, il me semble que ce n'est pas la réponse. Merci quand même.
OriginalL'auteur letiagoalves | 2013-03-10
Vous devez vous connecter pour publier un commentaire.
Après une longue nuit de sommeil je l'ai résolu en changeant la StackPanel parent à un Grille. J'ai gardé la deuxième StackPanel à l'intérieur de ScrollViewer élément et il fonctionne.
Je ne sais pas pourquoi le ScrollViewer ne fonctionne pas lorsque sa mère est un StackPanel au lieu d'une Grille. Si quelqu'un sait pourquoi merci de m'expliquer. Je n'ai pas envie de faire une Grille avec juste une colonne et de deux lignes parce que cela semble verticale StackPanel but.
Même si je l'ai résolu, sans savoir pourquoi, j'espère que cela aide quelqu'un d'autre avec le même problème et si vous lisez ceci et que vous pouvez expliquer ce problème, dites-moi s'il vous plaît... j'aimerai savoir.
OriginalL'auteur letiagoalves
Pile du panneau est un type de conteneur qui peuvent continuer à croître autant que les enfants vous ajouter et fournit un espace égal pour chacun de ses enfants, de Sorte que le scrollviewer nécessite une hauteur ici pour dire à la mère de définir les limites de l'espace; de sorte qu'il peut fonctionner dans son domaine.
espère que ça aide.
Height
de propriété à la société mèreStackPanel
rendrait leScrollViewer
travail?OriginalL'auteur Kundan Vuppala
J'ai juste donné un MaxHeight pour le ScrollViewer. Je suppose que le ScrollViewer besoin de savoir ce que sa hauteur maximale est de l'ordre de la figure, quand afficher les barres de défilement, si vous les avez sur auto visibilité.
Je l'ai juste essayé avec et sans MaxHeight pour le ScrollViewer et il ne fonctionne qu'avec un MaxHeight attribut.
Si j'avais une supposition de danger, je dirais que la Grille sait que sa MaxHeight dans les attributs que vous avez définie, mais je ne suis pas sûr, c'est juste une supposition.
OriginalL'auteur Boldi
J'ai fait mine de travail par le StackPanel un enfant du ScrollViewer et le réglage de la Hauteur de la StackPanel
OriginalL'auteur anagpuyol