在Adobe Flex 3中,我有一个包含图像和标签的HBox:
<mx:HBox width="240" verticalAlign="top" horizontalGap="8">
<mx:Image width="46" source="@Embed(source='/assets/blah.swf')"/>
<mx:Label text="Blah."/>
</mx:HBox>
我的目标是对齐图像的上边缘和标签的上边缘(标签中的大写字符的顶部,即)。但是,无论我使用什么属性和样式,标签上方的大约6个像素的常量“填充”(在引号中因为paddingTop为零),将其顶部边缘设置在图像的下方。有谁知道为什么?
谢谢,西蒙
修改
paddingTop没有做到这一点。我在这看到了同样的行为:
<mx:HBox width="240" verticalAlign="top" paddingTop="0">
<mx:Canvas width="46" height="46" backgroundColor="red" paddingTop="0"/>
<mx:Label text="Blah." paddingTop="0"/>
</mx:HBox>
我还证实,没有全局样式表干扰任何这些类。
编辑2:
来自Label,ll内部使用的mx.core.UITextField源代码(Flex 3.2.0)。 159:
/* The width and height of the TextField are 4 pixels greater than the textWidth and textHeight. */
以及
public function get measuredHeight():Number { (...) return textHeight + TEXT_HEIGHT_PADDING; (...) }
然后我将Label的paddingTop设置为-4,然后问题解决了!这不是一个干净的解决方案,但是......
答案 0 :(得分:2)
我只是在弄乱这个,看起来你必须将Label的paddingTop设置为零,因为如果你没有声明任何填充,它将使用组件的内置填充,所以它赢了不归零。
当我运行这个例子时,这似乎有效。
编辑:脏,但是固定,对吗? ;)