我有一个用这个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
中。
我的问题是它在模拟器中运行时显示了这一点。
但这就是我想要的:
我无法增加RowDefinition
的高度或为<Image>
设置固定大小。
有没有办法让GridView中的图像缩小,以便它们的高度适合GridViewItem的高度而不会被截断?
我查看了这篇文章:GridViewItem with height greater than its GridView height,但这没有帮助。
答案 0 :(得分:0)
我认为8.1中没有任何办法。我认为你必须做数学来计算你想要的图像元素的高度,并像你对ImageSource那样通过绑定来分配高度。您可能必须将高度设置为gridCategory_SizeChanged中的值减去一点。您可能还需要更改ItemContainerStyle以删除额外的空间。