Hello,
tout est dans le titre....
On peut spécifier l'orientation d'un StakPanel donc peut on en faire de même avec la ListBox ?
je penses que non vu que la propriété n'est pas dispo....
Hello,
tout est dans le titre....
On peut spécifier l'orientation d'un StakPanel donc peut on en faire de même avec la ListBox ?
je penses que non vu que la propriété n'est pas dispo....
C'est possible en modifiant le template du Panel qui gère l'ajout des éléments dans la ListBox.
Ainsi tu peux avoir des Listbox qui s'arrange en rond par exemple avec un panel adapté.
Pour ton orientation horizontal il suffit de définir un StackPanel avec une orientation Horizontal :
Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8<ListBox> <ListBox.ItemsPanel> <ItemsPanelTemplate> <StackPanel Orientation="Horizontal"></StackPanel> </ItemsPanelTemplate> </ListBox.ItemsPanel> </ListBox>
Super merci bien pour l'astuce....
Hello,
Bon j'ai mis ça en place mais ça ne fait l'effet souhaité !
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 <ListBox ItemsSource="{Binding Path=Items}" Grid.Column="2" Grid.Row="2"> <ListBox.ItemsPanel> <ItemsPanelTemplate> <StackPanel Orientation="Horizontal"></StackPanel> </ItemsPanelTemplate> </ListBox.ItemsPanel> <ListBox.ItemTemplate> <DataTemplate> <Grid Background="Transparent"> <Image Source="{Binding Path=BackgroundImageURL, Converter={StaticResource StringToBitmapConverter}}" Width="64" Height="64"></Image> <Image Source="{Binding Path=ImageURL, Converter={StaticResource StringToBitmapConverter}}" Width="64" Height="64"></Image> </Grid> </DataTemplate> </ListBox.ItemTemplate> </ListBox>
"ne fait pas l'effet souhaité" c'est un peu court comme description de ton probleme![]()
Pourquoi ?
je souhaites avoir une ListBox avec un défilement horizontale et non verticale.
Ce que tu m'as indiqué plus haut ne fonctionne pas dans mon code (ci-joint).
Faut-il mettre le DataTemplate à l'intérieur de la définition du ItemsPanelTemplate ?
Oui mais qu'est qui ne fonctionne pas ? L'alignement ? l'affichage de tes images ?
Si tu remplace tes images par un TextBlock ceux-ci sont bien alignés (j'ai testé) :
Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15 <ListBox ItemsSource="{Binding}"> <ListBox.ItemsPanel> <ItemsPanelTemplate> <StackPanel Orientation="Horizontal"></StackPanel> </ItemsPanelTemplate> </ListBox.ItemsPanel> <ListBox.ItemTemplate> <DataTemplate> <Grid Background="Transparent"> <TextBlock Text="Toto"></TextBlock> </Grid> </DataTemplate> </ListBox.ItemTemplate> </ListBox>
Ah ok,
j'ai compris ta question
en fait l'empilage se fait bien de gauche à droite mais on a le défilement de haut en bas....
Tu peux gerer les scrollbars à l'horiziontal de ta ListBox comme ceci :
Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <ListBox ScrollViewer.HorizontalScrollBarVisibility="Auto" ScrollViewer.VerticalScrollBarVisibility="Disabled" ... > ... </ListBox>
Ok,
je vais mettre ça en place ce soir
Grand merci.
Nickel
Merci Msieur !!
Partager