在主窗口中,我有一个Grid,其中有一个列表框和内容控件。
我已将窗口的SizeToContent属性设置为“WidthAndHeight”,窗口也可以调整大小。
列表框具有不同的控件名称作为项目,在选择列表框中的项目时,内容控件将填充相应的用户控件。
我有不同尺寸的控件,很少有小尺寸,其他尺寸很大。因为我已将SizeToContent属性设置为“WidthAndHeight”。用户控件是合适的,即窗口将通过适合用户控件动态地改变其宽度和高度。
现在问题是 - 在我的一个控件中我有“ListBox”,它根据列表框中的内容(从数据库中获取数据)更改其高度和宽度,而不显示水平和垂直滚动条。如何阻止这种行为?
我正在寻找修复列表框行为的解决方案,而不是增加列表框的高度和宽度,应该会出现水平和垂直滚动条。
请尽快回复。
忘记了几个点,在加载第一个控件后,将SizeToContent设置为“Manual”。 但是在加载第二个大型控件时,控件不适合窗口的现有空间。
最初,当加载窗口时,将出现第一个控件,其尺寸很小。 现在,当我尝试加载第二个控件时,与第一个控件相比,它的尺寸非常大 如下所示,加载了控件,但出现了一个滚动条,这是不可接受的。
第一个控件非常合适,因为我将窗口的SizeToContent属性设置为 WidthAndHeight , 在加载窗口后,它会更改为手动。
答案 0 :(得分:0)
要阻止ListBox
的内容调整大小,只需限制其Width
和Height
。您可以将其添加到具有特定Grid
和RowDefinition
的{{1}}中,或者直接设置ColumnDefinition
和ListBox.Width
属性:< / p>
ListBox.Height
或者,您可以随时设置<ListBox ItemsSource="{Binding Items}" Width="400" Height="800" />
和ListBox.MaxWidth
属性:
ListBox.MaxHeight
一旦内容增长大于这些最大值,<ListBox ItemsSource="{Binding Items}" MaxWidth="400" MaxHeight="800" />
会自动显示,但您也可以使用ScrollViewer.VerticalScrollBarVisibility
和ScrollViewer.HorizontalScrollBarVisibility
属性明确设置它们:
ScrollBar