Flex 3: верхнее выравнивание изображения и метки - PullRequest
1 голос
/ 06 марта 2009

В 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 моего Label -4, и вуаля, проблема решена! Хотя это не совсем чистое решение ...

1 Ответ

2 голосов
/ 10 марта 2009

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

Кажется, это сработало, когда я запустил пример.

Редактировать: Грязно, но исправлено, верно? ;)

...