2009-05-21 48 views
0

我有两个画布A和B,A是B的孩子。 可以通过一些用户操作调整大小,例如将一些UI组件添加到其基底。 A由另一个父画布B界定,如果其子A变得太大,应该显示其句柄。Flex调整大小Canvas在哪里放这样的代码? (内部图)

我想A至具有相同的宽度和B(或非常接近)的高度,而A的计算的宽度和高度比那些B.

的较小

如果w或H的比A变大那么B的A应该增长,B会显示滚动。 我希望它很清楚。

我的问题是我在哪里以及如何做这样的逻辑?

canvas diagram http://www.picimg.com/uploads/18cd2277adde7d50da2bc708075f4fac.png

回答

1

Canvas从中继承的UIComponent类具有minHeight和minWidth属性。您可以将A的minHeight/Width绑定到B的宽度和高度,因此无论何时调整B的大小,A的最小尺寸也会发生变化。绑定到一个表达式也被支持(见下面的例子)。 B会自动显示滚动条,当A变得太大而无法一次显示时,只需提供固定的高度和宽度(或其他大小限制)。 A也会在您添加孩子后自动调整大小。

<mx:Canvas id="B" width="..." height="..."> 
    <mx:Canvas id="A" minHeight="{B.height-20}" minWidth="{B.width-20}"> 
     <!-- your content widgets --> 
    </mx:Canvas> 
</mx:Canvas> 
0

所有你需要的是设置在B上的滚动策略是自动。这样,如果A太大,B就会有滚动条。这应该在MXML中完成。

<mx:Canvas name="B" width=100 height=100 scrollPolicy="auto"> 
    <mx:Canvas name="A" width=90 height=90> 
     ... 
    </mx:Canvas> 
</mx:Canvas> 
+0

滚动条策略默认为自动。 – 2009-05-21 13:29:08