0

在 GridView(Windows 8 应用程序)中,我使用以下项目模板来显示项目:

<DataTemplate x:Key="ProjectTemplate">
    <Grid Width="500" Background="MidnightBlue">
        <Grid.RowDefinitions>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="Auto"/>
            <RowDefinition Height="Auto"/>
        </Grid.RowDefinitions>
        <TextBlock Grid.Row="0" Text="{Binding Name}" Margin="20, 10" Style="{StaticResource SubheaderTextStyle}" TextWrapping="Wrap" Foreground="WhiteSmoke"/>
        <StackPanel Grid.Row="1" Orientation="Horizontal" Margin="20, 10, 10, 10" Background="MidnightBlue">
            <TextBlock Text="Last Modified :" Style="{StaticResource TitleTextStyle}" Foreground="WhiteSmoke"/>
            <TextBlock Text="{Binding LastModified}" Margin="5, 0, 0, 0" Style="{StaticResource TitleTextStyle}" Foreground="WhiteSmoke"/>
        </StackPanel>
        <TextBlock Grid.Row="2" Text="{Binding VideoPath}" Margin="20, 10, 10, 10" Style="{StaticResource TitleTextStyle}" TextWrapping="Wrap" Foreground="WhiteSmoke"/>
    </Grid>
</DataTemplate>

因此,主要是三行显示绑定到我的项目的Grid名称、LastModified 和 VideoPath 属性的数据。正确检索项目,绑定正常,我的问题更多是......设计问题。ProjectGridView

这是一个例子:

在此处输入图像描述

如果您注意到,前两项看起来不错 - 它们具有NameLastModifiedDate 和VideoPath显示。另一方面,第三项在 a 中显示更长,Name并且在显示时被省略。的第三个文本块也有 TextWrapping 集。TextBlockTextWrapping=trueVideoPathVideoPath

有没有什么办法可以根据需要放大每个项目的网格以显示全部内容?我需要对模板进行哪些修改?

编辑

我不想明确设置高度,因为在这种情况下,GridViewItems(其中文本块的文本对于一行来说足够短)会更大并且有......空白区域(抱歉解释不好,但是我真的找不到我的词来形容它更好)......

4

1 回答 1

0

尽管我搜索了很多可变大小的项目,并找到了许多......复杂的解决方案,但我遇到了一个非常简单的解决方案。

WinRT XAML Toolkit有这个很好WrapPanel,它完成了我的所有工作。而不是Grid, 在模板中,我使用了WrapPanel, 并在 GridViewItemPanelTemplate中:

<GridView.ItemsPanel>
    <ItemsPanelTemplate>
        <toolkit:WrapPanel Orientation="Vertical"/>
     </ItemsPanelTemplate>
</GridView.ItemsPanel>

结果如下所示:在此处输入图像描述

于 2013-08-10T20:17:22.320 回答