2010-07-02 4 views
1

Je suis en train de construire une mise en page dans Silverlight 4, et j'essaie d'afficher des images miniatures horizontalement avec une barre de défilement horizontale. Pour ce faire, j'ai essayé d'utiliser un StackPanel avec l'orientation horizontale, mais les images résultantes sont toujours affichées verticalement.Les images dans un StackPanel horizontal sont affichées verticalement

<ScrollViewer Height="140" VerticalAlignment="Top" VerticalScrollBarVisibility="Hidden" HorizontalScrollBarVisibility="Auto"> 
    <StackPanel Height="140" Orientation="Horizontal"> 
     <ListBox Height="140" ItemsSource="{Binding SelectedUser.ProfileImages}" /> 
    </StackPanel> 
</ScrollViewer> 

La ItemsSource est une liste de System.Windows.Controls.Image. Pour tester, je l'ensemence avec 4 miniatures et la taille de chaque sur 120x160.

BitmapImage bmpImage1 = new BitmapImage { UriSource = new Uri("Style/Images/thumbnail1.jpg", UriKind.Relative) }; 
Image image1 = new Image { Source = bmpImage1, Height = 120, Width = 160 }; 

L'objet de page résultant ressemble à l'image ci-dessous. Hauteur 140, largeur 160, mais les images sont disposées verticalement et non horizontalement. Des idées pour obtenir ces images à afficher horizontalement au lieu de verticalement?

http://img824.imageshack.us/img824/8211/stackpanel.png

Répondre

1

Plutôt que d'essayer de gestionnaire vous avez juste besoin du ScrollViewer vous (ce qui fait déjà ListBox) pour remplacer les ItemsPanel par défaut avec une StackPanel horizontale. Comme ceci: -

<ListBox Height="140" ItemsSource="{Binding SelectedUser.ProfileImages}"> 
    <ListBox.ItemsPanel> 
    <ItemsPanelTemplate> 
     <StackPanel Orientation="Horizontal" /> 
    </ItemsPanelTemplate> 
    </ListBox.ItemsPanel> 
</ListBox> 
Questions connexes