Flex 3: выравнивание по верхнему краю изображения и метки

В 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>

Моя цель - выровнять верхний край изображения и верхний край метки (то есть верхнюю часть заглавных символов в метке). Однако независимо от того, с какими свойствами и стилями я возюсь, постоянное «заполнение» (в кавычках, потому что paddingTop равно нулю) примерно в 6 пикселей остается над меткой, устанавливая ее верхний край ниже изображения. Кто-нибудь знает, почему?

Спасибо, Саймон

изменить:

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:

Из исходного кода mx.core.UITextField (Flex 3.2.0), который используется Label внутри компании, ll. 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;
   (...)
   }

Затем я устанавливаю paddingTop моей метки на -4, и вуаля, проблема решена! Хотя это не очень чистое решение...


person Simon    schedule 06.03.2009    source источник


Ответы (1)


Я только что возился с этим, и кажется, что вам нужно фактически установить paddingTop на ноль для метки, потому что, если вы не объявите какое-либо дополнение, оно будет использовать встроенное дополнение компонента, так что это не будет нуль.

Это, казалось, работало, когда я запускал пример.

Изменить: грязно, но исправлено, верно? ;)

person Marjolein    schedule 10.03.2009