2011-08-15 2 views
3

Je suis la conception d'une galerie d'images avec défilement Viewer et panneau de pile dans WPF comme ce qui suit:Hauteur de l'image Panneau intérieur Stack

<ScrollViewer x:Name="ShopsScroll" Grid.Row="1" HorizontalScrollBarVisibility="Hidden" VerticalScrollBarVisibility="Hidden"> 
     <StackPanel x:Name="stackPanel" Margin="0" Orientation="Horizontal" Height="Auto"> 
      <Image Source="Images/1F/L1_angesb.jpg"/> 
      <Image Source="Images/1F/L1_chanel.jpg"/> 
      <Image Source="Images/1F/L1_dior.jpg"/> 
      <Image Source="Images/1F/L1_gucci.jpg"/> 
      <Image Source="Images/1F/L1_LV.jpg"/> 
      <Image Source="Images/1F/L1_nike.jpg"/> 
</StackPanel> 

Comme l'image est de grande taille, je voudrais les redimensionner pour adapter la hauteur du StackPanel. Cependant, quand j'ai défini la valeur de height dans StackPanel comme "Auto", il a juste utilisé la hauteur de l'image, pas son parent ScrollViewer. Si je définis une valeur fixe sur StackPanel, le problème semble être résolu, mais j'ai besoin d'utiliser mon application dans une taille d'écran différente en plein écran. Ainsi, il devrait adapter la taille différente mais pas le code dur une valeur fixe.

Comment je le fais?

Répondre

1

Vous pouvez utiliser la liaison d'un élément pour lier la hauteur de vos images à la hauteur de l'élément StackPanel. Désolé, je ne peux pas tester ce code en ce moment, mais essayer quelque chose comme

<Image Source="Images/1F/L1_nike.jpg" Height="{Binding ElementName=ShopsScroll, Path=Height}" /> 

Voir MSDN documentation on the Binding.ElementName property.

Cette propriété est utile lorsque vous souhaitez lier la propriété d'un autre élément de votre application. Par exemple, si vous souhaitez utiliser un curseur pour contrôler la hauteur d'un autre contrôle dans votre application ou si vous souhaitez lier le contenu de votre contrôle à la propriété SelectedValue de votre contrôle ListBox.

0

Essayez de mettre HorizontalAlignment = "Stretch" et VerticalAlignment = "Stretch" pour StackPanel

À mon avis mieux d'avoir ItemsControl avec des images dans dans votre cas

<ItemsControl HorizontalContentAlignment="Stretch"> 
      <Image Source="Images/1F/L1_angesb.jpg"/> 
      <Image Source="Images/1F/L1_chanel.jpg"/> 
      <Image Source="Images/1F/L1_dior.jpg"/> 
      <Image Source="Images/1F/L1_gucci.jpg"/> 
      <Image Source="Images/1F/L1_LV.jpg"/> 
      <Image Source="Images/1F/L1_nike.jpg"/> 

</ItemsControl> 

Hope this helps

Questions connexes