【问题标题】:GridView is not SwipingGridView 不滑动
【发布时间】:2014-05-30 00:31:21
【问题描述】:

我创建了一个这样定义的 ListView:

            <ListView     x:Name="libraryListView"
                      AutomationProperties.AutomationId="VideoListView"
                      AutomationProperties.Name="Videos"
                      TabIndex="1"
                      Padding="0,0,4,0"
                      ItemsSource="{Binding}"
                      IsSwipeEnabled="False"
                      SelectionChanged="LibraryListView_SelectionChanged"
                      ItemTemplate="{StaticResource LibraryItemTemplate}"
                      ItemContainerStyle="{StaticResource LibraryListViewItemStyle}">
        </ListView>

LibraryItemTemplate 的定义如下:

        <DataTemplate x:Key="LibraryItemTemplate">

        <Grid Height="191"
              UseLayoutRounding="True">
            <Grid.Background>
                <ImageBrush Stretch="Fill"
                            ImageSource="Assets/BookShelf.jpg" />
            </Grid.Background>

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

            <Grid x:Name="gridTitle"
                  Background="{Binding Text, Converter={StaticResource LibraryItemBackgroundConverter}, ElementName=tbTitle}"
                  Margin="36,4,18,14">

                <TextBlock x:Name="tbTitle"
                           TextWrapping="Wrap"
                           VerticalAlignment="Center"
                           RenderTransformOrigin="0.5,0.5"
                           Width="130"
                           Margin="0,0,0,0.2"
                           TextAlignment="Center"
                           FontSize="18.667"
                           FontWeight="Bold"
                           UseLayoutRounding="False"
                           d:LayoutRounding="Auto">
                    <TextBlock.RenderTransform>
                        <CompositeTransform Rotation="-90" />
                    </TextBlock.RenderTransform>
                    <Run Text="{Binding Title}" />
                </TextBlock>
            </Grid>

            <Grid x:Name="gridBooks"
                  Grid.Column="1"
                  Margin="0">

                <!--<local:BooksUC />-->

                <GridView x:Name="booksGridView"
                          AutomationProperties.AutomationId="ItemGridView"
                          AutomationProperties.Name="Grouped Items"
                          ItemsSource="{Binding Items}"
                          ItemTemplateSelector="{StaticResource textbookTemplateSelector}"
                          SelectionMode="Multiple"
                          IsItemClickEnabled="True"
                          ItemClick="booksGridView_ItemClick"
                          SelectionChanged="booksGridView_SelectionChanged"
                          IsSwipeEnabled="True"
                          ScrollViewer.HorizontalScrollBarVisibility="Auto" 
                          ScrollViewer.HorizontalScrollMode="Enabled"
                          ScrollViewer.IsHorizontalRailEnabled="False"
                          ScrollViewer.VerticalScrollBarVisibility="Disabled"
                          ScrollViewer.VerticalScrollMode="Disabled"
                          ScrollViewer.IsVerticalRailEnabled="False">

                    <GridView.ItemsPanel>
                        <ItemsPanelTemplate>
                            <WrapGrid Orientation="Horizontal" />
                        </ItemsPanelTemplate>
                    </GridView.ItemsPanel>
                </GridView>

            </Grid>
        </Grid>
    </DataTemplate>

页面的结果如下所示:

我看到的问题是 GridView 向左滑动。第一个架子上有 15 个元素。

知道我的 XAML 代码有什么问题吗?

谢谢

【问题讨论】:

    标签: c# xaml gridview windows-8 winrt-xaml


    【解决方案1】:

    LibraryItemTemplate 有两个问题:

    1. 更改了列定义
    2. 更改了 ItemsPanel

    模板的代码是:

            <DataTemplate x:Key="LibraryItemTemplate">
    
            <Grid Height="191"
                  UseLayoutRounding="True">
                <Grid.Background>
                    <ImageBrush Stretch="Fill"
                                ImageSource="Assets/BookShelf.jpg" />
                </Grid.Background>
    
                <Grid.ColumnDefinitions>
                    <ColumnDefinition Width="Auto" />
                    <ColumnDefinition Width="*" />
                </Grid.ColumnDefinitions>
    
                <Grid x:Name="gridTitle"
                      Background="{Binding Text, Converter={StaticResource LibraryItemBackgroundConverter}, ElementName=tbTitle}"
                      Margin="36,4,18,14">
    
                    <TextBlock x:Name="tbTitle"
                               TextWrapping="Wrap"
                               VerticalAlignment="Center"
                               RenderTransformOrigin="0.5,0.5"
                               Width="130"
                               Margin="0,0,0,0.2"
                               TextAlignment="Center"
                               FontSize="18.667"
                               FontWeight="Bold"
                               UseLayoutRounding="False"
                               d:LayoutRounding="Auto">
                        <TextBlock.RenderTransform>
                            <CompositeTransform Rotation="-90" />
                        </TextBlock.RenderTransform>
                        <Run Text="{Binding Title}" />
                    </TextBlock>
                </Grid>
                <Grid x:Name="gridBooks"
                      Grid.Column="1"
                      Margin="0,0,36,0">
    
                    <!--<local:BooksUC />-->
    
                    <GridView x:Name="booksGridView"
                              AutomationProperties.AutomationId="ItemGridView"
                              AutomationProperties.Name="Grouped Items"
                              ItemsSource="{Binding Items}"
                              ItemTemplateSelector="{StaticResource textbookTemplateSelector}"
                              SelectionMode="Multiple"
                              IsItemClickEnabled="True"
                              ItemClick="booksGridView_ItemClick"
                              SelectionChanged="booksGridView_SelectionChanged"
                              IsSwipeEnabled="True"
                              ScrollViewer.HorizontalScrollBarVisibility="Auto"
                              ScrollViewer.HorizontalScrollMode="Enabled"
                              ScrollViewer.IsHorizontalRailEnabled="False"
                              ScrollViewer.VerticalScrollBarVisibility="Disabled"
                              ScrollViewer.VerticalScrollMode="Disabled"
                              ScrollViewer.IsVerticalRailEnabled="False">
    
                        <GridView.ItemsPanel>
                            <ItemsPanelTemplate>
                                <WrapGrid Orientation="Vertical"
                                          MaximumRowsOrColumns="1" />
                            </ItemsPanelTemplate>
                        </GridView.ItemsPanel>
                    </GridView>
    
                </Grid>
            </Grid>
        </DataTemplate>
    

    这些解决了问题。

    【讨论】:

      猜你喜欢
      • 2023-03-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-04-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多