2009-03-06 2 views
1

В Adobe Flex 3 у меня есть HBox, содержащие изображения и этикетки:Flex 3: Top выравнивание изображение и метки

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

ответ

2

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

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

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

Смежные вопросы