当我放置的ScrollViewer内的列表框,如果我不限定用于列表框一个高度属性,它不会滚动(除了上下颠簸比特),所以从屏幕元素是不可访问的。如果我将ListBox上的Height属性设置为它在屏幕上占据的实际高度,它会完美滚动。如果我没有完全正确的高度,它不会正确滚动,例如我可能无法访问列表中的底部元素。
当放置在单个列LayoutRoot网格其它元件上方和下方的ScrollViewer /列表框,我设置中的所有行的RowDefinition.Height =“自动”以外的的ScrollViewer的,它获取“*”。网格似乎相应地正确分配空间。除了现在我不知道ScrollViewer / ListBox占用了多少空间。
A部分:为什么我必须在ListBox上设置高度,它的(虚拟)高度是否随元素数量而变化?
B部分:看来我必须手动布局网格行高度,然后在调用字体大小或其他样式更改时手动重新执行它们。是这样的吗?这种做法似乎是假的。
答案 0 :(得分:4)
您的问题是由于您在ScrollViewer中有一个ListBox引起的。不要这样做。
列表框包含一个内部ScrollViewer,并且(通常)会增长到可用空间。
基本上在ScrollViewer中有一个ScrollViewer,它不知道哪个应该增长以适应可用空间以及它们应该如何相对于彼此滚动。
告诉我们您要做的事情。有一种更好的方法可以做到。