我正在填充一个包含特定数据的列表框,代码工作正常,但我需要在列表框中添加一个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>
答案 0 :(得分:1)
我修复了它,只需在ListBox控件中添加Height属性
答案 1 :(得分:0)
如果ListBox没有给出高度的无限空间,那么当项目溢出其边界时它应该自动滚动。例如,如果堆叠面板外的第二个网格行设置了显式或“星形”高度,则列表框中的滚动条将自动显示。
答案 2 :(得分:0)
您不需要在ScrollViewer
添加ListBox
。当它用完房间时会开始滚动。
但是,因为你已经将ListBox
置于StackPanel
内,所以它永远不会认为它已经用完了空间,因为StackPanel
在它的方向上无限增长容纳其内容。
您需要为ListBox
使用不同的容器。
答案 3 :(得分:0)
<ItemsControl.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Vertical"/>
</ItemsPanelTemplate>
</ItemsControl.ItemsPanel>