我有两个画布A和B,A是B的孩子。 可以通过一些用户操作调整大小,例如向其基础添加一些UI组件。 A由另一个父画布B限制,如果其子A变得太大,它应该显示scolling句柄。
我希望A具有相同的宽度和高度B(或非常接近),而计算出的A的宽度和高度小于B的宽度和高度。
如果A的w或h大于B的那些,则A应该增长,B将显示滚动。 我希望它有点清楚。
我的问题是我在哪里以及如何做这样的逻辑?
canvas diagram http://www.picimg.com/uploads/18cd2277adde7d50da2bc708075f4fac.png
答案 0 :(得分:1)
Canvas继承的UIComponent类具有minHeight和minWidth属性。您可以将A的minHeight / Width绑定到B的宽度和高度,因此每当调整B的大小时,A的最小尺寸也会改变。还支持绑定到表达式(请参阅下面的示例)。当A变得太大而无法一次显示时,B将自动显示滚动条,您只需要提供固定的高度和宽度(或其他一些尺寸约束)。 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>
答案 1 :(得分: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>