繁体   English   中英

列表框中的ScrollViewer

[英]ScrollViewer in a listbox

我用特定的数据填充列表框,代码工作正常,但是我需要向列表框添加一个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>

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

如果没有为列表框提供无限的高度空间,则列表框应在项目溢出其边界时自动滚动。 例如,如果堆栈面板外部的第二个网格行设置了显式或“星形”高度,则列表框中的滚动条将自动显示。

另请参阅: Silverlight:ScrollViewer的困难

您不需要将ScrollViewer添加到ListBox 空间不足时,它将开始滚动。

但是,由于已将ListBox放在StackPanel所以它永远不会认为空间用完了,因为StackPanel会沿其方向无限地增长以容纳其内容。

您需要为ListBox使用其他容器。

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM