2015-12-27 194 views
3

我想要一個單行GridView,可以用鼠標和觸摸滑動水平滾動。 GridView將通過綁定呈現圖像,以便從圖像數組中選擇單個圖像。單行水平滾動/可滑動GridView

一切工作正常(綁定,圖像選擇等),除了水平滾動不起作用。 XAML代碼如下所示。

我錯過了什麼?

<GridView x:Name="IconGridView" 
    Grid.Row="0" 
    Margin="8,12" 
    DataContext="{x:Bind IconManagerObj}" 
    DoubleTapped="{x:Bind IconGridView_DoubleTapped}" 
    IsItemClickEnabled="True" 
    IsSwipeEnabled="True" 
    ItemsSource="{Binding Path=IconImageInfo}" 
    ScrollViewer.HorizontalScrollBarVisibility="Auto" 
    ScrollViewer.HorizontalScrollMode="Enabled" 
    ScrollViewer.VerticalScrollMode="Disabled" 
    SelectionMode="Single" 
    Tapped="{x:Bind IconGridView_Tapped}"> 

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

    <GridView.ItemTemplate> 
     <DataTemplate> 
      <StackPanel Margin="4,8" 
      HorizontalAlignment="Center" 
      BorderBrush="{ThemeResource SubtleBlueBrush}" 
      BorderThickness="1"> 
       <Image Width="150" Source="{Binding IconImage}Stretch="Uniform"/> 
      </StackPanel> 
     </DataTemplate> 
    </GridView.ItemTemplate> 
</GridView> 

回答

4

Juan Pablo Garcia Coello的回答讓我走上了正軌,但沒有額外的設置就無法正常工作。我通過試用發現的重要事情是爲GridView設置高度

  • 身高必須足夠設置單個行元素的顯示沒有高到足以允許第二行。對於100的圖像高度,我將此任意設置爲140,並且效果很好。
  • ScrollViewer.VerticalScrollMode必須殘疾人
  • ScrollViewer.HorizontalScrollMode必須自動啓用
  • ScrollViewer.HorizontalScrollBarVisibility必須自動啓用
  • 最關鍵的,胡安指出,ItemsWrapGrid Orientation必須是垂直(sou NDS違反直覺的,但作品!)

我已標記胡安作爲回答,因爲它提供與這一個完整的答案,因爲這樣的事實,我不能很快想出了一個完整的答案,而不方向設定垂直 - 如果你問我,但現在我明白了,這是一個相當反直覺的設置。

+0

嗯,高度不應該被設置實際...這是我的承擔。 http://depblog.weblogs.us/2015/03/25/show-items-scrolling-horizo​​ntally-with-listview-in-winrt/如果你想我可以添加它作爲答案,因爲我使用堆棧面板包裝面板,它工作正常! – Depechie