0

私は 2 つのキャンバス A と B を持っています。A は B の子です。A は、そのベースにいくつかの UI コンポーネントを追加するなど、いくつかのユーザー アクションによってサイズを変更できます。A は、子 A が大きくなりすぎた場合にスクロール ハンドルを表示する必要がある別の親キャンバス B によって境界付けられます。

A の幅と高さは B と同じ (または非常に近い) にしたいのですが、A の計算された幅と高さは B の幅と高さよりも小さくなります。

A の w または h が B の w または h よりも大きくなると、A が大きくなり、B にスクロールが表示されます。私はそれが一種の明確であることを願っています。

私の質問は、そのようなロジックをどこでどのように行うことができるでしょうか?

キャンバス図 http://www.picimg.com/uploads/18cd2277adde7d50da2bc708075f4fac.png

4

2 に答える 2

1

Canvasが継承するUIComponentクラスには、minHeightプロパティとminWidthプロパティがあります。AのminHeight/WidthをBの幅と高さにバインドできるため、Bのサイズが変更されるたびに、Aの最小寸法も変更されます。式へのバインドもサポートされています(以下の例を参照)。Aが大きくなりすぎて一度に表示できない場合、Bは自動的にスクロールバーを表示します。固定の高さと幅(またはその他のサイズの制約)を指定するだけです。子を追加すると、Aも自動的にサイズ変更されます。

<mx:Canvas id="B" width="..." height="...">
    <mx:Canvas id="A" minHeight="{B.height-20}" minWidth="{B.width-20}">
        <!-- your content widgets -->
    </mx:Canvas>
</mx:Canvas>
于 2009-05-21T13:31:17.977 に答える
0

必要なのは、B のスクロール ポリシーを auto に設定することだけです。このように、A が大きすぎる場合、B にはスクロール バーが表示されます。これは MXML で行う必要があります。

<mx:Canvas name="B" width=100 height=100 scrollPolicy="auto">
    <mx:Canvas name="A" width=90 height=90>
        ...
    </mx:Canvas>
</mx:Canvas>
于 2009-05-21T13:27:28.077 に答える