ScrollViewer在列表框中

时间:2011-11-29 15:18:27

标签: c# silverlight windows-phone-7

我正在填充一个包含特定数据的列表框,代码工作正常,但我需要在列表框中添加一个scrollviewer,因为里面有很多元素,我试图使用ScrolViewer并放入列表框中,但不是不行,这是代码

<StackPanel x:Name="Sites" Grid.Row="1"  Orientation="Vertical">
    <ListBox x:Name="ListSites" >
       <ListBox.ItemTemplate>
          <DataTemplate>
            <Button Width="460" Height="120" Click="click" Name="btn">
             <Button.Content>
              <StackPanel Orientation="Vertical" Height="100" Width="460">
                <TextBlock Width="460" Name="txtname" FontSize="22" Text="{Binding name}" Height="40" Foreground="CadetBlue" />
                <TextBlock Width="460" Name="txtUrl" FontSize="22" Text="{Binding Url}" Height="60"/>
               </StackPanel>
              </Button.Content>
              </Button>
             </DataTemplate>
         </ListBox.ItemTemplate>
      </ListBox>
  </StackPanel>

4 个答案:

答案 0 :(得分:1)

我修复了它,只需在ListBox控件中添加Height属性

答案 1 :(得分:0)

如果ListBox没有给出高度的无限空间,那么当项目溢出其边界时它应该自动滚动。例如,如果堆叠面板外的第二个网格行设置了显式或“星形”高度,则列表框中的滚动条将自动显示。

另请参阅:Silverlight: Difficulty with ScrollViewer

答案 2 :(得分:0)

您不需要在ScrollViewer添加ListBox。当它用完房间时会开始滚动。

但是,因为你已经将ListBox置于StackPanel内,所以它永远不会认为它已经用完了空间,因为StackPanel在它的方向上无限增长容纳其内容。

您需要为ListBox使用不同的容器。

答案 3 :(得分:0)

<ItemsControl.ItemsPanel>
    <ItemsPanelTemplate>
        <StackPanel Orientation="Vertical"/>
    </ItemsPanelTemplate>
</ItemsControl.ItemsPanel>