-2
ここ数日のために私は、テキストブロックの以下のレイアウトのまわりで私の頭をラップしようとしてきた:WPF - コンプレックスのTextBlockレイアウト
-------------------- -----------
| 1 | | |
-------------------- | 3 |
| 2 | | |
----------------- -----------
テキストブロックのすべては、動的な幅を有しています。それらは高さが固定されており、固定サイズのコンテナ内にあります。彼らは次の要件を満たす必要があります:
- 2は、常に完全長である必要があります。
- 3のTextBlock 1を無視した場合、これらの2つの要件が「自動」に設定された列に、グリッド内の他の二つのテキストブロックを置くことによって満たすことができ2.
サイジングした後に残され、残りのスペースを埋めると "することができます*」と表記しています。
かかわらず第3の要件がある:
- 1はそれができ、すべてのスペースをとるが、しかし3
例を制限することなく:
ブロック3(ブロック2におけるロングコンテンツコンテンツは全長であり、ブロック3のコンテンツはトリムされる):
ブロック3の短いコンテンツ(ブロック2と3の両方のコンテンツは全長です。ブロック1)は、残りのスペースを埋める:
--------------------- ---------
| 1 | | |
--------------------- | 3 |
| 2 | | |
----------------- ---------
は、WPFでこのレイアウトを実現する方法はありますか?どうやって?
おかげでここに一つの実施です。ただし、2番目の例では期待どおりに動作しません。私はそれを動作させるためにあなたのコードを変更しました、最後の 'else'ブランチはこれに変更する必要があります:' InternalChildren [2] .Arrange(new Rect(arrangeSize.Width - sizeLabel2.Width、0、sizeLabel2.Width、sizeLabel2。高さ)); InternalChildren [0] .Arrange(new Rect(0、0、arrangeSize.Width - sizeLabel2.Width、sizeLabel0.Height)); '。あなたがあなたの答えを修正したら、私はそれを受け入れます。 – Mastah
私はあなたがそのアイディアを得て、あなたのニーズに論理を適応させることができてうれしいです。私は自分の答えを更新しました。 – gomi42