1

メイン ウィンドウ コンテナー (パネル) が子をホストする WPF で XAML UI を作成しようとしています。

トリッキーな部分は、ウィンドウのサイズが変更されたときに (たとえば、画面上で最大化されているとき)、子供たちのサイズを変更し、ストレッチせずに使用可能なスペースを最大限に占有するようにすることです。しかし同時に、可能な場合はラップ パネルのようにラップできるようにしたいと考えています。

簡単に理解できるように、簡単なモックアップを設計しました。

Imgurの画像モックアップ (25.2KB)

一番上のものは、すべて同じ幅と同じ高さを共有する 3 つの要素をホストするパネルを示しています。2 つは 1 行目にあり、3 つ目は 2 行目を利用して表示されます。すべてを最初の行に表示すると、幅が狭くなります。

一番下のパネルは、同じ幅と同じ高さを共有する 8 つの要素をホストするパネルを示しています (最初のモックアップよりも小さいため、1 つの画面に収まります)。最初の 2 行にはそれぞれ 3 つの要素があり、最後の行には 2 つしかありません。

私の最初のアイデアは Stackpanel を使用することでしたが、それらは子要素をストレッチし、私の知る限り、要素の数に応じて子の動的なサイズ変更を許可しません。

次に、ラッピングを非常にうまく行うwrappanelを見ましたが、その魔法を行うために子供のサイズを設定する必要があります(何かを見落としている可能性がありますが、それを回避する方法が見つかりませんでした)。

パネルを柔軟に保ちながら、この動作を実装する方法を知っていますか?

それを使用するアプリケーションでは、ユーザーの設定に応じて、パネルに配置する子の数が異なります。

ああ、言うのを忘れていましたが、垂直スクロールは当然なく、すべてがダッシュボードのように 1 つの画面に収まる必要があります。それがこのパネルのポイントです。すべてが収まり、歪みなくできるだけ大きく表示されることを確認してください。

ご不明な点がございましたら、お気軽にお尋ねください。

ご協力ありがとうございました。

4

0 に答える 0