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.

J'ai essayé le code que vous avez fournis, il fonctionne très bien. Pouvez-vous expliquer ce qu'est exactement la question que vous rencontrez? Ou pouvez-vous fournir le code de toute la page?
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