2010-12-09 80 views
0

Salut les gars Je ListBox que je pouvais en faire un curseur d'image « une rangée », comme le code suivant:Silverlight: ListBox faire l'image à deux rangs curseur

<ListBox x:Name="lbImage" Style="{StaticResource horizontalListBoxStyle }" 
        Background="Transparent" VerticalAlignment="Top" HorizontalAlignment="Left" 
       SelectionChanged="lbImage_SelectionChanged" Height="90" Margin="0, 0, 0 ,0" Width="500"> 
       <ListBox.ItemTemplate> 
        <DataTemplate> 
         <Image Source="{Binding Href}" Height="40" Width="40" Stretch="UniformToFill" Cursor="Hand" Margin="0,0,-1,0" /> 
        </DataTemplate> 
       </ListBox.ItemTemplate> 
       </ListBox> 

Avec I remplir le imageSource dans le code derrière comme suit:

List<Picture> imageList = new List<Picture>(); 
     imageList.Add(new Picture(...)); 
     lbImage.ItemsSource = imageList; 

Ainsi, cela fonctionne comme un curseur à une rangée. Que devrais-je changer pour en faire un curseur à «deux rangs»? Ce que je veux dire par «deux rangs», c'est que je veux deux lignes sur le curseur.

image1 image2 image3 ... image6 image7 image8 ...

Merci

SimpleCode

Répondre

0

Changez votre source de données à une classe qui contient des paires d'images:

List<PicturePair> imageList = new List<PicturePair>(); 
     imageList.Add(new PicturePair{Picture1 = ..., Picture2 = ...}); 
     lbImage.ItemsSource = imageList; 

Ensuite, changez votre DataTemplate pour qu'il devienne une grille

<ListBox x:Name="lbImage" 
     Style="{StaticResource horizontalListBoxStyle }" 
     Background="Transparent" 
     VerticalAlignment="Top" HorizontalAlignment="Left" 
     SelectionChanged="lbImage_SelectionChanged" Height="90" Margin="0, 0, 0 ,0" 
     Width="500"> 
    <ListBox.ItemTemplate> 
     <DataTemplate> 
      <Grid> 
       <GridRowDefinitions> 
        <RowDefinition Height="45"/> 
        <RowDefinition Height="45"/> 
       </GridRowDefinitions> 
       <Image Grid.Row="0" 
         Source="{Binding Path=/Picture1/Href}}" Height="40" Width="40" 
         Stretch="UniformToFill" Cursor="Hand" 
         Margin="0,0,-1,0"/> 
       <Image Grid.Row="1" 
         Source="{Binding Path=/Picture2/Href}" Height="40" Width="40" 
         Stretch="UniformToFill" Cursor="Hand" 
         Margin="0,0,-1,0"/> 
      </Grid> 
     </DataTemplate> 
    </ListBox.ItemTemplate> 
</ListBox> 

Je n'ai pas de compilateur avec moi pour le moment, donc je ne peux pas tester ça, mais je pense que ça va faire l'affaire.