2015-02-09 2 views
0

Кто-нибудь знает, можно ли создать горизонтальный список или gridview на Windows Phone 8.1?WPF Horisontal listview

Я попытался сделать один с этой частью XAML кода, который дает вертикальный ориентированный ListView:

<Page 
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
xmlns:local="using:HorzListView" 
xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
xmlns:SampleData="using:Blend.SampleData.SampleDataSource" 
x:Class="HorzListView.MainPage" 
mc:Ignorable="d" 
Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> 

<Page.Resources> 
    <SampleData:SampleDataSource x:Key="SampleDataSource" d:IsDataSource="True"/> 
    <DataTemplate x:Key="ListDataItemTemplate"> 
     <Grid> 
      <Image Source="{Binding Property3}" Height="79" Width="79"/> 
     </Grid> 
    </DataTemplate> 
</Page.Resources> 

<Grid DataContext="{Binding Source={StaticResource SampleDataSource}}"> 
    <Grid.RowDefinitions> 
     <RowDefinition Height="Auto"/> 
     <RowDefinition Height="*"/> 
    </Grid.RowDefinitions> 
    <Grid.ColumnDefinitions> 
     <ColumnDefinition Width="*"/> 
    </Grid.ColumnDefinitions> 

    <TextBlock Grid.Row="0" Text="Hello" FontSize="72"></TextBlock> 

    <ListView Grid.Row="1" 
        ItemTemplate="{StaticResource ListDataItemTemplate}" 
        ItemsSource="{Binding ListData}"> 

      <!--<ListView.ItemsPanel> 
       <ItemsPanelTemplate> 
        <StackPanel Orientation="Horizontal"/> 
       </ItemsPanelTemplate> 
      </ListView.ItemsPanel>--> 
     </ListView> 
</Grid> 

И если я раскомментировать блок кода ниже, ListView становится горизонтальной, но это не можно пролистать любой из пунктов:

  <ListView.ItemsPanel> 
       <ItemsPanelTemplate> 
        <StackPanel Orientation="Horizontal"/> 
       </ItemsPanelTemplate> 
      </ListView.ItemsPanel> 

Я думаю, что это что-то делать с StackPanel в ItemsPanel, потому что если я изменю Ориентации т o «Вертикаль», он получает вертикальный макет, но прокрутка невозможна.

Любые предложения?

+0

я использую почти точно такую ​​же установку , используйте 'VirtualizingStackPanel' вместо' StackPanel' в 'ItemsPanelTemplate'; что позволит прокручивать. –

ответ

0

Определение строки для ListView нужно не Auto *

<Grid.RowDefinitions> 
    <RowDefinition Height="Auto"/> 
    <RowDefinition Height="Auto"/> 
</Grid.RowDefinitions> 


<ListView Grid.Row="1" 
       ItemTemplate="{StaticResource ListDataItemTemplate}" 
       ItemsSource="{Binding ListData}"> 

     <ListView.ItemsPanel> 
      <ItemsPanelTemplate> 
       <StackPanel Orientation="Horizontal"/> 
      </ItemsPanelTemplate> 
     </ListView.ItemsPanel> 
    </ListView> 
+0

Извините за поздний ответ, но меня перетащили в другие проекты. Я получил горизонтальную прокрутку, вот мой код xaml (о не могу вставить его, добавьте его в buttom) – Mabzy

+0

Вы тоже работали с вертикальной прокруткой? –

+0

Пока не пробовал. – Mabzy

0
<Page 
    xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation" 
    xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml" 
    xmlns:local="using:HorzListView" 
    xmlns:d="http://schemas.microsoft.com/expression/blend/2008" 
    xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" 
    xmlns:SampleData="using:Blend.SampleData.SampleDataSource" 
    x:Class="HorzListView.MainPage" 
    mc:Ignorable="d" 
    Background="{ThemeResource ApplicationPageBackgroundThemeBrush}"> 

    <Page.Resources> 
     <SampleData:SampleDataSource x:Key="SampleDataSource" d:IsDataSource="True"/> 
     <DataTemplate x:Key="ListDataItemTemplate"> 
      <Grid> 
       <Image Source="{Binding Property3}" Height="79" Width="79"/> 
      </Grid> 
     </DataTemplate> 
    </Page.Resources> 

    <Grid DataContext="{Binding Source={StaticResource SampleDataSource}}"> 
     <Grid.RowDefinitions> 
      <RowDefinition Height="Auto"/> 
      <RowDefinition Height="*"/> 
     </Grid.RowDefinitions> 
     <Grid.ColumnDefinitions> 
      <ColumnDefinition Width="*"/> 
     </Grid.ColumnDefinitions> 

     <TextBlock Grid.Row="0" Text="Hello" FontSize="72"></TextBlock> 

     <ListView Grid.Row="1" 
        VerticalAlignment="Top" 
        ScrollViewer.HorizontalScrollBarVisibility="Auto" 
        ScrollViewer.VerticalScrollBarVisibility="Disabled" 
        ScrollViewer.HorizontalScrollMode="Enabled" 
        ScrollViewer.VerticalScrollMode="Disabled" 
        ScrollViewer.ZoomMode="Disabled" 
        SelectionMode="Single" 
        ItemTemplate="{StaticResource ListDataItemTemplate}" 
        ItemsSource="{Binding ListData}"> 

       <ListView.ItemsPanel> 
        <ItemsPanelTemplate> 
         <StackPanel Orientation="Horizontal"/> 
        </ItemsPanelTemplate> 
       </ListView.ItemsPanel> 
      </ListView> 
    </Grid> 
</Page>