我已经搜索了很多答案而无法找到答案 所以:我正在制作Windows Phone应用程序(目标为7.1),我有一个带有以下ItemTemplate的ListBox
<ListBox.ItemTemplate>
<DataTemplate>
<Grid>
<TextBlock x:Name="subjectName" Text="{Binding Path=name}" TextWrapping="Wrap" Foreground="White" FontSize="30" FontFamily="Segoe WP Semibold" Width="440" Height="99"/>
<TextBlock x:Name="subjectCode" Text="{Binding Path=code}" FontSize="25" Width="107" HorizontalAlignment="Right" Margin="0,79,0,-12"/>
<TextBlock x:Name="totalAbsences" Text="{Binding Path=absences}" FontSize="30" Width="107" HorizontalAlignment="Left" Margin="0,119,0,-65"/>
<TextBlock x:Name="totalGrade" Text="{Binding Path=grades}" FontSize="30" Width="186" HorizontalAlignment="Right" Margin="0,119,0,-62" TextAlignment="Right"/>
<Rectangle Fill="White" Height="3" Margin="0,0,0,-233" />
</Grid>
</DataTemplate>
</ListBox.ItemTemplate>
这就是发生的事情:
http://d.pr/i/liBK(暂时无法发布图片)
那么可以做些什么来自动调整项目的高度?
答案 0 :(得分:0)
由于列表框中的每个项目都包含在网格中,您可以指定 Grid.RowDefinitions 并为网格中的每个子项指定一个行号。
样品:
<Grid>
<Grid.RowDefinitions>
<RowDefinition Height="Auto"></RowDefinition> <!-- Gets whatever height is necessary -->
<RowDefinition Height="140"></RowDefinition> <!-- Specific Height -->
<RowDefinition MaxHeight="*"></RowDefinition> <!-- Fills whatever space is left -->
</Grid.RowDefinitions>
<TextBlock x:Name="subjectName" Text="{Binding Path=name}" Grid.Row="0"/>
<TextBlock x:Name="subjectCode" Text="{Binding Path=code}" Grid.Row="1"/>
<TextBlock x:Name="totalAbsences" Text="{Binding Path=absences}" Grid.Row="2"/>
</Grid>
为了简单起见,我使用了一些代码并删除了一些额外的属性。只需玩弄它,看看它有用。