我正在尝试为listitem模板制作网格。应该有三列,第二列和第三列各应为50px宽,第一列应该拉伸也填充剩余的空白空间。
到目前为止,这是我的代码:
<DataTemplate x:key="NoteItemTemplate">
<Grid Background="{Binding ColorBrush}"
Height="50"
Margin="5,5,5,5"
HorizontalAlignment="Stretch">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*" />
<ColumnDefinition Width="50" />
<ColumnDefinition Width="50" />
</Grid.ColumnDefinitions>
</Grid>
</DataTemplate>
<!-- far away, in an another file.. -->
<ListBox
x:Name="NotesListBox"
VerticalContentAlignment="Stretch"
HorizontalContentAlignment="Stretch"
VerticalAlignment="Top"
ItemsSource="{Binding NotesList}"
ItemTemplate="{StaticResource NoteItemTemplate}"
Background="AliceBlue" />
如果它是1 *或*,则没有区别。
但我似乎无法找到答案。你会怎么做?
答案 0 :(得分:3)
您提到要将上面的Grid定义用作ListBoxItem的DataTemplate。默认情况下,ListBoxItem的内容不会被拉伸,因此在您的情况下,您只会看到2列。
所以我认为你需要指定,你想要拉伸ListBoxItem的内容。这样做:
<ListBox>
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
</Style>
</ListBox.ItemContainerStyle>
</ListBox>