Windows Phone ListBox项高度

时间:2013-09-04 02:48:59

标签: c# xaml windows-phone-7 listbox

我已经搜索了很多答案而无法找到答案 所以:我正在制作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(暂时无法发布图片)

那么可以做些什么来自动调整项目的高度?

1 个答案:

答案 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>

为了简单起见,我使用了一些代码并删除了一些额外的属性。只需玩弄它,看看它有用。