【问题标题】:GridView with GridViewItem Cutoff带有 GridViewItem 截止的 GridView
【发布时间】:2015-07-21 03:12:33
【问题描述】:

我有一个使用此 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>

`

&lt;Image&gt; 的 DataSource 只是一个对象列表,其属性 ImagePath 是文件夹中图像的路径。 数据填充到 GridView 内部方法 OnNavigatedTo

我的问题是它在模拟器中运行时会显示这个。

但这就是我想要的:

我无法增加RowDefinition 的高度或为&lt;Image&gt; 设置固定大小。

有什么办法可以让GridView里面的图片比例变小,让它们的高度适合GridViewItem的高度,不会被截断?

我看过这个帖子:GridViewItem with height greater than its GridView height,但这并没有帮助。

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-05-05
      • 2016-05-27
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多