これは、これに対するフォローアップの質問で、回答済みです。
コードの使用:
<ListBox ScrollViewer.VerticalScrollBarVisibility="Disabled">
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<WrapPanel Orientation="Vertical"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
</ListBox>
アイテムが列に左から右に入力され、特定の列の最後のアイテムが切り落とされないリストを作成できますListBox(つまり、アイテムが収まりきらない場合、アイテムは次の列の一番上に移動されます)。Widthを動的に調整してListBoxアイテムを「フィット」させ、同じ動作を水平に取得するにはどうすればよいでしょうか。したがって、次のように仮定します。
与えられたで、すべてのアイテムに適合Heightするのに 1 つだけ必要な場合、の は の のサイズである必要があります。ColumnWidthListBoxWidth
または、与えられHeightた 4 つColumnの s が必要な場合は、アイテムの 4 倍のサイズにする必要がありWidthます。
最後に、与えられた で の最大許容数よりも多くの s が必要であるとHeightします。その場合、 s 内の収まりきらないアイテムが切り捨てられずに表示されないように、その幅を計算する必要があります。ユーザーが右にスクロールするまで。ColumnWidth ListBoxColumn
ご協力いただきありがとうございます!!
編集:
上記を表現するより簡単な方法は、リスト内のアイテムの「クリッピング」を回避する方法を探しているということだと思います。アイテムをグリッドに表示するリストを作成したいのですが、一部のアイテムが部分的に覆われており、そのアイテムの残りを表示するには右または左にスクロールする必要があるため、スクロールする必要はありません (ただし、リストは幅または高さが非常に大きくなる可能性があり、すべてを表示するためにスクロールする必要があるアイテムが十分にある場合は、表示されたアイテムだけが完全に表示されるはずです)。また、リストの最初の描画だけを気にします。常にフィットするようにアイテムを「スナップ」する必要はありませんが、表示するアイテムで利用可能なスペースを完全に埋めるようにスクロールできる必要があります。
これを行うための鍵は、実行時のリストアイテムのサイズとリストボックス内のコンテンツコンテナーのサイズを把握することであり、リストが最初に表示される前に一度に非常に多くのアイテムに完全に収まるように調整できるように思えました描かれた?
ありがとう!