Flex resizing Canvas, куда девать такой код? (схема внутри)

У меня есть два холста A и B, A - дочерний элемент B. A может быть изменен некоторыми действиями пользователя, такими как добавление некоторых компонентов пользовательского интерфейса в его основу. A ограничен другим родительским холстом B, который должен показывать дескрипторы прокрутки, если его дочерний элемент A становится слишком большим.

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

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

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

диаграмма холста http://www.picimg.com/uploads/18cd2277adde7d50da2bc708075f4fac


person coulix    schedule 21.05.2009    source источник


Ответы (2)


Класс UIComponent, от которого наследуется Canvas, имеет свойства minHeight и minWidth. Вы можете привязать minHeight / Width A к ширине и высоте B, поэтому при изменении размера B минимальные размеры 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>
person Simon    schedule 21.05.2009

Все, что вам нужно, это установить политику прокрутки на 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>
person CookieOfFortune    schedule 21.05.2009
comment
политика прокрутки по умолчанию установлена ​​на авто. - person Joel Hooks; 21.05.2009