2011-01-03 28 views
11

私はWP7 silverlightで水平リストボックスを作成するために、以下のコードを使用しようとしています。アイテムは水平に表示されますが、スクロールはまだ垂直です。水平リストボックスをWP7で水平方向にスクロールするにはどうすればよいですか?

wpfで何か間違っていますか?これはWP7固有のバグですか?

<Style TargetType="ListBox" x:Name="HorizontalListBox"> 
     <Setter Property="ItemsPanel"> 
      <Setter.Value> 
       <ItemsPanelTemplate> 
        <VirtualizingStackPanel Orientation="Horizontal" 
              IsItemsHost="True" 
              CanHorizontallyScroll="True" 
              CanVerticallyScroll="False"/> 
       </ItemsPanelTemplate> 
      </Setter.Value> 
     </Setter> 
    </Style> 

編集:私は大きな違いを見せる2つのプロパティがありませんでした。 (解決策は、Mick Nによって受け入れられた回答の2番目のリンクから来た)

<Style TargetType="ListBox" x:Name="HorizontalListBox"> 
     <Setter Property="ItemsPanel"> 
      <Setter.Value> 
       <ItemsPanelTemplate> 
        <VirtualizingStackPanel Orientation="Horizontal" IsItemsHost="True" CanHorizontallyScroll="True" CanVerticallyScroll="False"/> 
       </ItemsPanelTemplate> 
      </Setter.Value> 
     </Setter> 
     <Setter Property="ScrollViewer.HorizontalScrollBarVisibility" Value="Auto"/> 
     <Setter Property="ScrollViewer.VerticalScrollBarVisibility" Value="Disabled"/> 
    </Style> 

答えて

6
<Grid x:Name="ContentPanel" Grid.Row="1" Margin="12,0,12,0" >  
     <ScrollViewer HorizontalScrollBarVisibility="Auto" Margin="0,6,-196,0" Height="Auto" Name="imageScroll"> 
     <ListBox x:Name="imageBox" Margin="12,0,0,0"> 
       <ListBox.ItemsPanel> 
        <ItemsPanelTemplate> 
         <StackPanel Orientation ="Horizontal" > 
          <StackPanel.RenderTransform> 
           <TranslateTransform 
            X="0" /> 
          </StackPanel.RenderTransform> 

         </StackPanel> 
        </ItemsPanelTemplate> 
       </ListBox.ItemsPanel> 
        <ListBox.ItemTemplate> 
       <DataTemplate> 
         <Image Source="{Binding Avatar}" Width="240" Stretch="Fill" Height=" 100" /> 
        <!--<TextBlock TextWrapping="Wrap" Text="{Binding Titulo}" FontSize="35" VerticalAlignment="Center" Margin="0,10" />-->      
       </DataTemplate> 
      </ListBox.ItemTemplate>     
     </ListBox> 
     </ScrollViewer> 
    </Grid> 

これは私のために働いているコードです。

2

ほぼ2年後、Mahanteshのコードは、ListBoxが垂直方向にスクロールできるように、ScrollViewer行とListBox行の両方でVerticalScrollBarプロパティを無効にして、2つの追加だけでうまくいきました。

<ScrollViewer HorizontalScrollBarVisibility="Auto" 
       VerticalScrollBarVisibility="Disabled" 
       Margin="0,6,-196,0" 
       Height="Auto" Name="imageScroll"> 
<ListBox x:Name="imageBox" 
     ScrollViewer.VerticalScrollBarVisibility="Disabled" 
     Margin="12,0,0,0"> 
関連する問題