ListBoxのパネルの高さに収まらなくなったときに、グループが右から左に折り返されたアイテムを表示するためにListBoxを作成しました。WPFリストボックスWrapPanelクリップの長いグループ
[ 1 ][ 3 ][ 5 ]
[ ][ 4 ][ 6 ]
[ 2 ][ ]
次のXAMLは、そのことで正常に動作しますので、グループは各グループの高さは任意であるリストボックスでこのように表示されます(グループ1は、例えば、グループ2の倍の高さです)ラッピングを実行し、アイテムがListBoxの右側からはみ出したときに水平スクロールバーが表示されるようにします。
<ListBox>
<ListBox.ItemsPanel>
<ItemsPanelTemplate>
<StackPanel Orientation="Vertical"/>
</ItemsPanelTemplate>
</ListBox.ItemsPanel>
<ListBox.GroupStyle>
<ItemsPanelTemplate>
<WrapPanel Orientation="Vertical"
Height="{Binding Path=ActualHeight,
RelativeSource={RelativeSource
FindAncestor,
AncestorLevel=1,
AncestorType={x:Type ScrollContentPresenter}}}"/>
</ItemsPanelTemplate>
</ListBox.GroupStyle>
</ListBox>
問題は、アイテムのグループがWrapPanelの高さよりも長い場合に発生します。垂直スクロールバーにカットオフアイテムグループを表示させる代わりに、そのグループ内のアイテムは単純にクリップされます。私はこれがWrapPanelのHeightバインディングの副作用であると仮定しています。スクロールバーは有効にする必要はないと考えています。
スクロールバーを有効にする方法はありますか、この問題を回避する方法はありますか?
これは*ほぼ*私が必要とする正確な解決策です。垂直スクロールは可能ですが、水平スクロールは停止します。私は少し修正しました(次の答えに示されている変更されたコード)、それは完全に動作します。ありがとう、阿部。 –