1

これが私が遭遇し続ける問題です:

次のようなスタイルのコンテナでテキストを表示する必要がある状況がたくさんあります。

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

ご覧のとおり、テキストはキャンバスの左右の余白によって制限されており、テキスト コントロールにテキストを追加するときに垂直方向に大きくしたいので、テキスト コントロールの高さを指定していません。理由は、テキストが 1 行の場合はキャンバスの中央に表示したいのですが、テキストが 2 行または 3 行ある場合は、テキスト コントロールにその 2 行または 3 行のテキストを表示したいからです。

ただし、発生し続けるのは、1行のテキストしか表示されないということです-それまたはコンテナでinvalidateSize()を何回呼び出しても。私は何をしますか?

警告: キャンバスの高さと幅は、それをインスタンス化するコンポーネントによって設定されるため (これはすべてカスタム コンポーネントにまとめられています)、テキスト コントロールの幅または高さを明示的に設定することはできません...

注: わかりました。この質問を入力しているうちにわかったので、簡単に修正できるかもしれませんが、簡単な質問に答えるチャンスです!?

4

2 に答える 2

2

自動的に折り返すには、テキスト コンポーネントに幅が必要です。改行を含む文字列を使用した場合、幅がなくても期待どおりに機能します。あなたのために、使用します:

編集: OK、さまざまなサイズのキャンバスの中央に配置します。次に、次のことができます。

<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 に答える