Я пытаюсь использовать DataTemplate
для ListBox.ItemTemplate
для простого списка TODO.
Шаблон для каждого ListBoxItem является сеткой, и я хочу, чтобы содержимое моего второго столбца растягивало оставшуюся ширину.из списка.Кажется, никакое количество HorizontalAlignment="Stretch"
и т. Д. Не поможет, и я думаю, что мне нужно изменить шаблон.Я посмотрел на ListBox
извлеченный шаблон Xaml, но не вижу, что мне нужно изменить.
В этом примере XAML вы можете увидеть зеленую рамку, которая должна растянуть оставшуюся ширину элемента списка, ноне.
В XamlPad / WPF этот код на самом деле отображает как ожидалось.
В Silverlight коробка не растягивается.
<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>