Bonjour,
Alors voilà, mon problème me semble tout simple, mais pas moyen d'y arriver.
Je voudrais, dans une zone donnée (délimité par un stackpanel d'alignement horizontal par exemple), dessiner x rectangles sans préciser leur taille, et je voudrais que chacun d'eux prennent la même hauteur pour remplir le tout.
Exemple qui ne fonctionne pas :
Code xaml : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 <Grid Name="MultiRectGrid"> <StackPanel Name="rectContainer" Width="Auto" Height="Auto" HorizontalAlignment="Stretch" Orientation="Vertical"> <Rectangle Fill="Aqua" Height="auto"></Rectangle> <Rectangle Fill="Red" Height="auto"></Rectangle> <Rectangle Fill="Green" Height="auto"></Rectangle> </StackPanel> </Grid>
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
16
17
18
19 // Portion de code pour créer des rectangles, ça "marche presque", sauf que la hauteur est spécifiée à la main. foreach (Keyword currentKeyword in control.listKeyword) { /*ColumnDefinition cd = new ColumnDefinition(); cd.Width = GridLength.Auto; control.MultiRectGrid.ColumnDefinitions.Add(cd);*/ Rectangle r = new Rectangle(); r.HorizontalAlignment = HorizontalAlignment.Stretch; r.VerticalAlignment = VerticalAlignment.Stretch; r.Height = 10; Brush brush = new SolidColorBrush(currentKeyword.color); r.Fill = brush; control.rectContainer.Children.Add(r); }
En gros, je voudrais un truc comme avec, avec mes rectangles qui prennent toute la place disponible en largeur et qui se partagent équitablement la place en hauteur, et surtout, je voudrais pouvoir rajouter ou supprimer mes rectangles en code behind, parce que leur nombre n'est pas figé.
Merci d'avance !
Partager