Salut,
Je suis en train de galérer sur un problème de layout...
J'ai dans mon application une vue "maitre/détails" : en gros, quand je sélectionne un réalisateur dans une liste, une autre liste montre les films de ce réalisateur. Jusqu'ici, rien de très compliqué...
Pour fixer les idées, ça ressemble à ça
Maintenant, je voudrais :
1. Pouvoir "réduire" la liste des films
2. Pouvoir redimensionner la liste des films
En gros, je voudrais le même comportement que la barre latérale de l'explorateur Vista (avec en haut "Liens favoris", et en bas "Dossiers", qu'on peut redimensionner et réduire)
J'utilise donc le code suivant (simplifié pour des raisons évidentes de clarté...) :
Code XML : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 <Grid> <Grid.RowDefinitions> <RowDefinition /> <RowDefinition Height="Auto"/> <RowDefinition Height="Auto"/> </Grid.RowDefinitions> <ListView Name="lstDirectors" Grid.Row="0" ItemsSource="{Binding ...}"/> <GridSplitter Grid.Row="1" Height="5" HorizontalAlignment="Stretch" VerticalAlignment="Center"/> <Expander Name="expDirectorMovies" Grid.Row="2" IsExpanded="True"> <ListView Name="lstDirectorMovies" ItemsSource="{Binding ...}"/> </Expander> </Grid>
- Quand je replie l'Expander, la ligne qui le contient est bien redimensionnée pour ne laisser que l'en-tête de l'Expander.
- Je peux également redimensionner la ligne de l'Expander avec le GridSplitter
Le problème : une fois que j'ai manipulé le GridSplitter, la hauteur de la ligne est modifiée, donc elle n'est plus en Auto, et donc la ligne ne se redimensionne plus quand je replie l'Expander...
J'ai aussi essayé de passer par un binding sur Expanded avec un Converter, mais le GridSplitter dégage le binding pour changer la hauteur.
J'ai trouvé un post qui aborde le problème sur le forum MSDN, mais il ne semble pas y avoir de solution "propre" à part gérer la hauteur par le code, ce que je préfèrerais éviter
Est-ce que vous auriez une idée pour régler ce problème ? Ou alors une approche différente pour obtenir le comportement voulu ?
Partager