1

这是我一直遇到的一个问题:

我有很多情况需要使用样式容器显示一些文本,如下所示:

<mx:Canvas>
     <mx:Text text="{text}" left="5" verticalCenter="0" right="5" />    
</mx:Canvas>

如您所见 - 文本受画布左右边距的约束,我没有为文本控件指定高度,因为我希望它在向其添加文本时垂直增长。原因是 - 如果有一行文本,我希望它显示在画布的中心,但如果有两三行文本,我希望文本控件显示那两三行文本。

然而,不断发生的是它只会显示一行文本——无论我在它或容器上调用多少次 invalidateSize()。我该怎么办?

CAVEAT:画布的高度和宽度由实例化它的组件设置(这都包含在自定义组件中)所以我不能显式设置文本控件的宽度或高度......

注意:好的,也许这很容易解决,因为当我输入这个问题时,我想通了 - 但是,这是一个回答一个简单问题的机会!?

4

2 回答 2

2

如果您希望 Text 组件为您自动换行,则它需要一个宽度。如果你使用了一个带有换行符的字符串,它会像你预期的那样增长而没有宽度。对你来说,使用:

编辑:好的,您希望它以不同大小的画布为中心。那么你就可以:

<mx:HBox 
    width="500"
    paddingLeft="5"
    paddingRight="5">
    <mx:Spacer width="100%" />
    <mx:Text 
        width="100%"
        text="{text}" />
    <mx:Spacer width="100%" />
</mx:HBox>
于 2008-10-12T14:47:39.843 回答
1

看一下 TextArea 组件。

于 2008-10-12T14:39:04.777 回答