0

我目前有一个 WrapGrid 绑定到 BitmapImages 的 ObservableCollection。我希望显示这些,每行 4 个项目,向下延伸 - 当 WrapGrid 延伸超过用户屏幕的大小时,允许用户向下滚动。目前它正在工作 - 但没有出现滚动条并且用户无法向下滚动 - 所以只要它超出屏幕,图像就会被切断并且无用。

我相信我定义网格的方式一定是不正确的;但是对于我的一生,经过数小时的搜索,我无法弄清楚我做错了什么。

这是我的代码:

<Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">
    <Grid.RowDefinitions>
        <RowDefinition Height="140" />
        <RowDefinition Height="*" />
    </Grid.RowDefinitions>

    <Grid>
       <Grid.ColumnDefinitions>
           <ColumnDefinition Width="Auto" />
           <ColumnDefinition Width="*" />
       </Grid.ColumnDefinitions>

       <Button x:Name="backButton"
            Click="GoBack"
            IsEnabled="{Binding Frame.CanGoBack, ElementName=pageRoot}"
            Style="{StaticResource BackButtonStyle}" />

       <TextBlock x:Name="pageTitle"
               Grid.Column="1"
               Text="Image Gallery"
               Style="{StaticResource PageHeaderTextStyle}" />
    </Grid>

   <Grid Grid.Row="1" Grid.Column="1">
    <Grid Margin="120,0,0,0">
        <Grid.RowDefinitions>
            <RowDefinition Height="60" />
            <RowDefinition Height="60" />
            <RowDefinition Height="*" />
        </Grid.RowDefinitions>
        <Grid.ColumnDefinitions>
            <ColumnDefinition Width="Auto" />
            <ColumnDefinition Width="Auto" />
            <ColumnDefinition Width="Auto" />
            <ColumnDefinition Width="Auto" />
            <ColumnDefinition Width="Auto" />
            <ColumnDefinition Width="*" />
        </Grid.ColumnDefinitions>

         ...
        <ItemsControl Name="listOfImages" ItemsSource="{Binding Path=Images}" Grid.Row="2" Grid.Column="1" Grid.ColumnSpan="5" ScrollViewer.VerticalScrollBarVisibility="Visible">
            <ItemsControl.ItemsPanel>
                <ItemsPanelTemplate>
                    <WrapGrid Orientation="Horizontal" Grid.Row="2" Grid.Column="1" Grid.ColumnSpan="5" />
                </ItemsPanelTemplate>
            </ItemsControl.ItemsPanel>
            <ItemsControl.ItemTemplate>
                <DataTemplate>
                    <Image Stretch="Fill" Width="200" Height="200" Source="{Binding}" Margin="10,10,10,0"  Grid.Row="2" Grid.Column="1" Grid.ColumnSpan="5"  />
                </DataTemplate>
            </ItemsControl.ItemTemplate>
        </ItemsControl>
    </Grid>
</Grid>
4

1 回答 1

1

我认为这些东西是默认设置的,但可能并非如此,所以这可能很有用。

<ItemsPanelTemplate>
    <WrapGrid Orientation="Horizontal" 
              CanVerticallyScroll="True" 
              ScrollViewer.VerticalScrollBarVisibility="Auto" />
</ItemsPanelTemplate>
于 2013-01-14T19:26:10.727 回答