Silverlight画布滚动条

时间:2010-07-28 14:36:34

标签: silverlight canvas scroll scrollviewer

我已经读过将画布放在scrollviewer中是行不通的,因为画布没有报告它的大小。我一直在尝试使用不同的容器(边框,网格,画布和滚动查看器),并且可以简单地解释滚动查看器在嵌套容器中的行为方式。例如如果我有一个UserControl的容器层次结构> Grid1> Canvas1> ScrollViewer> Grid2>当Canvas2变得比Canvas1宽时,Canvas2应该在Grid2周围出现滚动条? (或者确实比UserControl更宽)如果没有,我应该如何组织我的容器,以便我可以向Canvas2添加大量的元素,并根据需要显示滚动条。 (我的usercontrol宽度和高度设置为100%)

1 个答案:

答案 0 :(得分:1)

如果你明确地给它一个大小,Canvas将与ScrollViewer一起使用。问题来自于如果你没有为任何控件提供高度和宽度,它将尝试根据它的父容器确定它的可用区域。但是ScrollViewer具有无限可用区域。

Grid为例。如果我定义的Grid具有2个星形宽度列和2个星形高度行。 Grid如何知道每列应该有多宽?明星说它们应该是可用区域的一半,但在ScrollViewer内可用区域是无穷大。

您向Canvas2添加了哪些控件?如果您使用固定位置添加它们,则ScrollViewer将展开以容纳所有元素。如果你没有给他们固定的位置,那么所有的控件将叠加在一起,因为那是Canvas

的排列行为