[英]WPF '*' character not spacing correctly
我在Windows Universal App中有一个ListBox
,每个ListBoxItem
是一个Grid
其中的文本和图像的列各不相同。 对于某些ColumnDefinitions
我具有特定的宽度,然后尝试在剩余的列之间均匀分配剩余的空间。 据我了解, *
字符可以做到这一点,但看起来更像是Auto
并仅分配必要的空间。
因此,我不是foo bar baz
而是foobarbaz
。
有谁知道我在做什么错?
<ListBox x:Name="ItemsListBox" Grid.Row="3" Margin="0, 80, 0, 80" VerticalAlignment="Top" ItemsSource="{Binding Items}" Loaded="ItemsListBox_Loaded">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Vertical" />
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.ItemTemplate>
<DataTemplate>
<Grid x:Name="ItemsListBoxGrid">
<Grid.ColumnDefinitions>
<ColumnDefinition Width="60" />
<ColumnDefinition Width="150" />
<ColumnDefinition Width="45" />
<ColumnDefinition Width="100" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
<ColumnDefinition Width="*" />
</Grid.ColumnDefinitions>
<Image Grid.Column="0" Height="40" Source="{Binding Img}" />
<TextBlock Grid.Column="1" Text="{Binding Name}" />
<TextBlock Grid.Column="2" Text="{Binding Level}" />
<TextBlock Grid.Column="3" Text="{Binding Rarity}" />
<TextBlock Grid.Column="4" Text="{Binding Type}" />
<TextBlock Grid.Column="5" Text="{Binding MinSaleOffer}" />
<TextBlock Grid.Column="6" Text="{Binding MaxBuyOffer}" />
<TextBlock Grid.Column="7" Text="{Binding Margin}" />
<TextBlock Grid.Column="8" Text="{Binding Supply}" />
<TextBlock Grid.Column="9" Text="{Binding Demand}" />
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
</ListBox>
ListBox
的默认样式将其HorizontalContentAlignment
属性设置为Left
,这反过来会使所有视觉效果左对齐,而不是拉伸到可用空间。 因此,您要寻找的“剩余空间”实际上为零。
采用:
<ListBox HorizontalContentAlignment="Stretch">`
<!-- etc ... -->
</ListBox>
您没有做错任何事,只是默认容器(ListBoxItem)样式将内容向左对齐,从而防止了Grid进行度量/排列。
只需将以下内容添加到您的ListBox中即可。
<ListBox.ItemContainerStyle>
<Style TargetType="ListBoxItem">
<Setter Property="HorizontalAlignment" Value="Stretch"/>
<Setter Property="HorizontalContentAlignment" Value="Stretch"/>
</Style>
</ListBox.ItemContainerStyle>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.