2009-05-21 2 views
0

У меня есть два холста A и B, A - это ребенок B. A может быть изменен размером с помощью некоторых действий пользователя, таких как добавление некоторых компонентов пользовательского интерфейса на его базу. A ограничен другим материнским холстом B, который должен отображать рукоятки scolling, если его ребенок A становится слишком большим.Flex resizing Canvas, куда поставить такой код? (диаграмма внутри)

Я хотел бы, чтобы иметь такую ​​же ширину и высоту B (или очень близко) в то время как расчетная ширина и высота меньше, чем у B.

Если б или ч в А получить больше те из B, то A должны расти, и B покажет прокрутку. Надеюсь, это ясно.

Мой вопрос: где и как я могу сделать такую ​​логику?

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

ответ

1

Класс UIComponent, из которого Canvas наследует, имеет свойство minHeight и minWidth. Вы можете привязать значение minHeight/W ширины A к ширине и высоте 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 get слишком большой, 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

Политика прокрутки по умолчанию для авто. –

Смежные вопросы