5

メニュー上部、グリッド左、中央に画像があるborderPaneがあります。画像がグリッドを超えるため、画像を境界線の中央と同じサイズにしたいです。

私はこれを試しました:

           imageView.fitWidthProperty().bind(box.widthProperty());

ここで、imageView は画像の名前で、box は BorderPane オブジェクトです。ありがとうございます。

4

1 に答える 1

3

JavaFX Feature Request RT-21337 を参照してください。サンプル実装用のコード添付ファイルを含むImageViewPane および MediaViewPane コントロールを追加します。このコントロールは、領域で使用可能な領域に含まれるサイズを変更します。必要な動作を得るには、image の最小サイズではなくゼロを返すように、computeMinWidthcomputeMinHeightを実装する必要がある場合もあります。ImageViewPaneImageViewImageViewPane


今、画像は私のグリッドを超えています

これは、現在、画像の最小サイズがBorderPaneの中央の使用可能なスペースよりも大きいためです。

BorderPane はデフォルトでそのコンテンツをクリップしません。そのため、子の最小サイズがそのスペース内に収まらない場合、子の境界が自身の境界の外に広がる可能性があります。

中央のコンテンツが境界からはみ出すのを防ぐためのいくつかの可能な代替手段:

  1. 中央のノードにクリップを手動で設定して、境界からはみ出さないようにします。
  2. ImageView上記のImageViewPaneサンプルのように動的にサイズを変更します。
  3. ImageViewScrollPaneに配置します。
  4. を使用するのではなく、 css -fx-background-image 属性を使用して、画像を表示し、動的にサイズ変更しますImageView
  5. 境界コンテンツを設定する前に、最初に境界ペインの中心を設定します。これにより、境界コンテンツの下にレンダリングされます。
  6. ノードが使用可能な表示領域よりも大きい場合にノードをオーバーラップさせないボーダーペイン (HBoxes、VBoxes など) とは異なる構成を使用します。

私はこれを試しました:imageView.fitWidthProperty().bind(box.widthProperty());

提供されたコードからの私の推測では、画像を囲むボックスが動的にサイズ変更可能なある種のペインであるため、これは機能しなかったため、ボックスの最小幅は画像の幅によって決定され、その逆ではありません。

于 2013-04-11T18:04:50.377 に答える