J'essaye d'utiliser un DataTemplate
pour ListBox.ItemTemplate
pour une simple liste TODO.Ajustement du template ListBox nécessaire pour l'étirement horizontal des éléments de la listbox
Le modèle de chaque ListBoxItem est une grille et je souhaite que le contenu de ma 2ème colonne étire la largeur restante de la zone de liste. Aucune quantité de HorizontalAlignment="Stretch"
etc. semble faire l'affaire et je pense que je dois modifier le modèle. J'ai regardé le modèle Xaml extrait ListBox
mais je ne vois pas ce que j'ai besoin de changer.
Dans cet exemple XAML, vous pouvez voir une boîte verte censée étirer la largeur restante de l'élément listbox, mais ce n'est pas le cas.
Dans XamlPad/WPF, ce code est rendu comme prévu.
Dans Silverlight, la boîte ne s'étire pas.
<ListBox Width="360" Height="150" HorizontalContentAlignment="Stretch">
<ListBox.ItemTemplate>
<DataTemplate>
<Grid Margin="3,0,3,0" HorizontalAlignment="Stretch">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="Auto" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<TextBlock Text="URGENT" Foreground="Red" Margin="5,0,10,0" Grid.Column="0" VerticalAlignment="Center"/>
<Border BorderBrush="Green" BorderThickness="1" Grid.Column="1" HorizontalAlignment="Stretch" Margin="0,2">
<TextBlock Margin="5,2" Text="{Binding}" FontWeight="Bold" />
</Border>
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
<s:String>Take out trash</s:String>
<s:String>Clean car</s:String>
<s:String>Finish TODO list program</s:String>
<s:String>Sleep</s:String>
</ListBox>
malheureusement les mêmes. essayé vos deux idées. Je suis assez sûr que son modèle est lié mais je ne suis pas encore tout à fait au courant de savoir quoi modifier quand je l'extrait avec le mélange –
Mettez la grille directement dans le ListBox comme contenu et voir ce qui se passe, je ne pense pas qu'il est modèle lié. Quelles sont les largeurs des éléments? – Ozan