我正在开发Adobe AIR应用程序。 “应用程序”窗口的大小为800X600,包含边框容器,边框容器包含许多控件。
我想要的是,如果用户重新调整应用程序的大小,那么该容器也应根据比例重新调整大小。即如果用户最大化或最小化窗口,那么边框容器也应分别最大化或最小化。
答案 0 :(得分:5)
如果您不想(或因某些原因不能)使用基于百分比的宽度,那么您可以随时在MXML中执行以下操作:
<s:BorderContainer
xmlns:mx = "http://www.adobe.com/2006/mxml"
xmlns:s = "library://ns.adobe.com/flex/spark"
width = "{parentApplication.width / 2}"
height = "{parentApplication.height / 2}">
您只是获取对组件的parentApplication的引用,并直接绑定到它的宽度和高度。最后扔任何你想要的数学。
答案 1 :(得分:2)
更简单的方法是让组件声明相对于外部容器的大小/位置。例如,不是设置x,y,width和height,而是在Application组件中设置left,right,top和bottom以及Application中的容器。如果要强制实施最小大小800x600,可以设置minWidth和minHeight属性。希望有所帮助。
答案 2 :(得分:1)
这可以使用MVC框架来完成。一些选项包括RobotLegs,Mate,Cairngorm或者可以使用一些快速设计模式并实现自定义版本。
基本上,应检测Application事件Event.RESIZE并将其应用于容器。 stageHeight和stageWidth的属性将提供调整容器大小的必要信息。
在任何情况下,调整大小事件都将遍历显示层次结构,但如果自定义事件或函数应用于控件,则可以方便地在应用程序级别进行拦截。