GridView与GridViewItem Cutoff

时间:2015-07-17 03:46:02

标签: c# windows-phone-8.1 winrt-xaml

我有一个用这个XAML创建的WP8.1页面: `

<Grid>
    <Grid.ColumnDefinitions>
        <ColumnDefinition Width="*"/>
        <ColumnDefinition Width="18*"/>
        <ColumnDefinition Width="*"/>
    </Grid.ColumnDefinitions>
    <Grid.RowDefinitions>
        <RowDefinition Height="*"/>
        <RowDefinition Height="*"/>
        <RowDefinition Height="9*"/>
        <RowDefinition Height="*"/>
    </Grid.RowDefinitions>

    <GridView x:Name="gridCategory" Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="3"  ScrollViewer.HorizontalScrollMode="Enabled" ScrollViewer.VerticalScrollMode="Disabled" ScrollViewer.HorizontalScrollBarVisibility="Visible" SizeChanged="gridCategory_SizeChanged">
        <GridView.ItemsPanel>
            <ItemsPanelTemplate>
                <VirtualizingStackPanel Orientation="Horizontal"/>
            </ItemsPanelTemplate>
        </GridView.ItemsPanel>
        <GridView.ItemTemplate>
            <DataTemplate>
                <Image Source="{Binding ImagePath}" Stretch="UniformToFill" VerticalAlignment="Stretch"/>
            </DataTemplate>
        </GridView.ItemTemplate>
    </GridView>
</Grid>

`

<Image>的数据源只是一个对象列表,其属性ImagePath是文件夹中图像的路径。 数据将填充到GridView内部方法OnNavigatedTo中。

我的问题是它在模拟器中运行时显示了这一点。

enter image description here

但这就是我想要的:

enter image description here

我无法增加RowDefinition的高度或为<Image>设置固定大小。

有没有办法让GridView中的图像缩小,以便它们的高度适合GridViewItem的高度而不会被截断?

我查看了这篇文章:GridViewItem with height greater than its GridView height,但这没有帮助。

1 个答案:

答案 0 :(得分:0)

我认为8.1中没有任何办法。我认为你必须做数学来计算你想要的图像元素的高度,并像你对ImageSource那样通过绑定来分配高度。您可能必须将高度设置为gridCategory_SizeChanged中的值减去一点。您可能还需要更改ItemContainerStyle以删除额外的空间。