Flex 3:顶部对齐图像和标签

时间:2009-03-06 09:56:03

标签: actionscript-3 flex3 mxml

在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,然后问题解决了!这不是一个干净的解决方案,但是......

1 个答案:

答案 0 :(得分:2)

我只是在弄乱这个,看起来你必须将Label的paddingTop设置为零,因为如果你没有声明任何填充,它将使用组件的内置填充,所以它赢了不归零。

当我运行这个例子时,这似乎有效。

编辑:脏,但是固定,对吗? ;)