ListBoxes 和 ListViews 是 WPF 中的一个难题。您需要更新
ListBox.ItemContainerStyle
以水平拉伸 Content Presenter
。
<ListBox x:Name="myData">
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="{x:Type ListBoxItem}">
<!--*** THIS GUY ***-->
<ContentPresenter HorizontalAlignment="Stretch" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListBox.ItemContainerStyle>
<ListBoxItem>
<Grid HorizontalAlignment="Stretch">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="1*" />
<ColumnDefinition Width="10*" />
<ColumnDefinition Width="5*" />
<ColumnDefinition Width="2*" />
<ColumnDefinition Width="2*" />
</Grid.ColumnDefinitions>
<Grid Grid.Column="0">
<TextBlock Text="1" />
</Grid>
<Grid Grid.Column="1">
<WrapPanel>
<Rectangle Fill="LightGray"
Width="40"
Height="40"/>
<StackPanel Margin="10,0,0,0">
<TextBlock Text="NAME" />
<TextBlock Text="DES" />
</StackPanel>
</WrapPanel>
</Grid>
<Grid Grid.Column="2">
<TextBlock Text="ALBUM" />
</Grid>
<Grid Grid.Column="3">
<Path Data="M0,0 L100,0 L100,100 L0,100 Z "
Fill="Red"
Stroke="Red"
Stretch="Fill"
Width="16"
Height="16" />
</Grid>
<Grid Grid.Column="4">
<TextBlock Text="SIZE" />
</Grid>
</Grid>
</ListBoxItem>