在WPF中使用ScrollViewer的问题

man*_*der 2 c# wpf scrollview

我正在使用WPF应用程序并使用scrollViewer查看屏幕区域以外的内容.工作正常,没有问题.

但是如果我的窗口包含一个Listbox或Grid或类似的东西,并且该控件有许多记录,那么它不会向自身添加滚动条,而只是增加控件和窗口本身的高度,因为scrollviewer认为它需要扩展.

我不想硬编码列表框的高度,因为它在不同的分辨率下使它相同,我想让它增加它的高度但不总是作为scrollviewer使它这样做.

谢谢

Chr*_*isF 6

如果ScrollViewer不设置查看器的高度/宽度,则不能在其中包含可变高度/宽度对象.

滚动查看器有效地具有无限高度,因此网格扩展以填充"可用"空间 - 因此您看到的效果.正如@JoeWhite在他的评论中所说,这ScrollViewer是一个容器,可以保持其所有内容所需的高度.锚定无助 - 实际上,你ListBox已经锚定了,它只是固定在"哦,我将成为你需要我的任何大小"的东西上.

您需要限制高度,移动ListBox外部ScrollViewer或使用除a 之外的其他东西ScrollViewer.

再次引用@Joe"这些是将滚动区域放在另一个滚动区域内的危险 - 它的可用性很差,并且很难定义行为."

  • 每次我必须处理ScrollViewer时,我知道这将是一个糟糕的一天.:) (3认同)
  • @MSingh,你把它放在ScrollViewer里面.ScrollViewer是一个容器,可以保存所有内容所需的高度.锚定无济于事 - 实际上,你的ListBox已经被*锚定,它只是固定在"哦,我将是你需要我的任何大小"的东西上.这些是将滚动区域放在另一个滚动区域内的危险 - 它的可用性差,并且很难定义行为. (2认同)