使用ItemsControl对象

时间:2015-09-25 10:07:19

标签: wpf visual-studio xaml user-interface scroll

在我的xaml中,我有一些由我制作的对象。我把它们排成一排,如果窗口太小,我就换上新的一行。

问题是当窗口太小而且在新行中时,元素不能全部显示出来。解决方案很简单:滚动条!!但是,如果我将Vertical / Horizo​​ntalScrollBarVisibility设置为auto,则不会再转到换行符。

这是我的xaml:

<ScrollViewer CanContentScroll="True" VerticalScrollBarVisibility="Disabled" HorizontalScrollBarVisibility="Disabled" >
     <ItemsControl Name="ItemGroups" ItemsSource="{Binding NotifyItemUI}" />
</ScrollViewer>

这是我需要的截图:

enter image description here

例如,如果我垂直调整我的区域,并且我有3行对象,这样,如果窗口太小,我就看不到第三行。在这种情况下,我希望看到一个垂直滚动条来滚动它。

水平相同的事情:如果我有一行的元素太多,我必须水平滚动。

1 个答案:

答案 0 :(得分:1)

您所描述的内容看起来像WrapPanel,但您写的方式表明它是自定义控件,因此我们无法看到您的ItemsControl正在为布局做些什么。

但是,ScrollViewer可能与Panel进行棘手的互动。如果Panel测量为无穷大,它将始终认为自己足够大,并且永远不会告诉ScrollViewer它不在空间中。结果是ScrollViewer不知道需要滚动条。如果这是您的问题,那么设置WidthHeight属性,或者@Sheridan说的最大值,应该解决它。