この場合、電子メールに関する短い情報を表示してみましょう。これには、送信者、件名、および本文があります。
2 つDataTemplate
の異なる を作成します。1 つは送信者と件名を示し、もう 1 つは送信者、件名、および本文の最初の 3 つの空でない行を示します。
Q : WPF が提供できる画面領域の量に基づいてデータ テンプレートを選択するにはどうすればよいですか? それが適切なアプローチではない場合、使用可能なサイズに基づいて、短いバージョンの視覚的表現と長いバージョンの視覚的表現をどのように表示すればよいですか?
私がやったこと:私は遊んだDataTemplateSelector
が、目標に到達する方法を見つけられなかった. セレクターは、データ自体のみに基づいて動作するようです。
電子メール メッセージを表示するコントロールを作成し、オーバーライドMeasure(size)
してArrange(size)
. 私Measure(size)
ができること:
res1 = base.Measure(infSize); // non-restricted size
res2 = base.Measure(size);
res2 が res1 より小さいかどうかはわかっています。つまり、短いバージョンのビジュアル表現をレンダリングする必要があります。しかし、私はこの瞬間に立ち往生しています...