Silverlight:使列表框足够大以容纳所有内容?
我有一个Silverlight:使列表框足够大以容纳所有内容?,silverlight,Silverlight,我有一个列表框,其中有足够的项目,可以使垂直滚动条可见。如何使列表框自动增加高度,使其能够一次显示所有项目,而无需滚动 谢谢。您必须确保它的容器会给它足够的空间。如果列表框的容器是具有固定宽度和高度的网格,则它将为列表框提供固定大小。当项目高度超过该大小时,滚动条将可见。如果将ListBox放入StackPanel中,StackPanel将使ListBox无限大。您仍然必须确保堆叠面板的大小是无限制的。您必须确保它的容器将给它足够的空间。如果列表框的容器是具有固定宽度和高度的网格,则它将为列表框
列表框
,其中有足够的项目,可以使垂直滚动条可见。如何使列表框自动增加高度,使其能够一次显示所有项目,而无需滚动
谢谢。您必须确保它的容器会给它足够的空间。如果
列表框
的容器是具有固定宽度和高度的网格
,则它将为列表框
提供固定大小。当项目高度超过该大小时,滚动条将可见。如果将ListBox
放入StackPanel
中,StackPanel
将使ListBox
无限大。您仍然必须确保堆叠面板的大小是无限制的。您必须确保它的容器将给它足够的空间。如果列表框
的容器是具有固定宽度和高度的网格
,则它将为列表框
提供固定大小。当项目高度超过该大小时,滚动条将可见。如果将ListBox
放入StackPanel
中,StackPanel
将使ListBox
无限大。您仍然必须确保StackPanel
的大小没有限制。问题在于ListBox
模板的核心是这个Xaml:-
<Border CornerRadius="2" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}">
<ScrollViewer x:Name="ScrollViewer" Padding="{TemplateBinding Padding}" Background="{TemplateBinding Background}" BorderBrush="Transparent" BorderThickness="0" TabNavigation="{TemplateBinding TabNavigation}">
<ItemsPresenter />
</ScrollViewer>
</Border>
ScrollViewer使您想做的事情变得非常困难。解决方案是(假设您确实需要一个列表框),即重新设置列表框的模板。将模板的上述部分调整为:-
<Border CornerRadius="2" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}">
<ItemsPresenter />
</Border>
您可能还想使用StackPanel
作为项目面板
但是,如果您不需要ListBox的选择功能,那么一个简单的ItemsControl就可以了 问题在于
列表框
模板的核心是这个Xaml:-
<Border CornerRadius="2" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}">
<ScrollViewer x:Name="ScrollViewer" Padding="{TemplateBinding Padding}" Background="{TemplateBinding Background}" BorderBrush="Transparent" BorderThickness="0" TabNavigation="{TemplateBinding TabNavigation}">
<ItemsPresenter />
</ScrollViewer>
</Border>
ScrollViewer使您想做的事情变得非常困难。解决方案是(假设您确实需要一个列表框),即重新设置列表框的模板。将模板的上述部分调整为:-
<Border CornerRadius="2" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}">
<ItemsPresenter />
</Border>
您可能还想使用StackPanel
作为项目面板
但是,如果您不需要ListBox的选择功能,那么一个简单的ItemsControl就可以了