ListBox
には、垂直スクロールバーを表示させるのに十分なアイテムがあります。リストボックスの高さが自動的に高くなるようにするには、スクロールせずに一度にすべてのアイテムを表示できますか?Silverlight:ListBoxをすべてのコンテンツにフィットする大きさにしますか?
ありがとうございました。
ListBox
には、垂直スクロールバーを表示させるのに十分なアイテムがあります。リストボックスの高さが自動的に高くなるようにするには、スクロールせずに一度にすべてのアイテムを表示できますか?Silverlight:ListBoxをすべてのコンテンツにフィットする大きさにしますか?
ありがとうございました。
コンテナに十分なスペースがあることを確認する必要があります。 ListBox
のコンテナが固定幅と高さのGrid
の場合、ListBox
は固定サイズになります。アイテムの高さがそのサイズを超えると、スクロールバーが表示されます。 をStackPanel
に入れた場合、StackPanel
は無限のサイズListBox
となります。あなたはまだStackPanel
のサイズが無制限であることを確認する必要があります。
問題はListBox
テンプレートの中核でこのXAMLであるということである: -
<Border CornerRadius="2" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}">
<ScrollViewer x:Name="ScrollViewer" Padding="{TemplateBinding Padding}" Background="{TemplateBinding Background}" BorderBrush="Transparent" BorderThickness="0" TabNavigation="{TemplateBinding TabNavigation}">
<ItemsPresenter />
</ScrollViewer>
</Border>
ScrollViewerのは、あなたが非常に難しい何をしたいかになります。解決策は、(実際にはListBoxが特に必要であると仮定して)、ListBoxを再テンプレートすることです。あなたはおそらく、同様の項目パネルとしてStackPanel
を使用したいと思う
<Border CornerRadius="2" BorderBrush="{TemplateBinding BorderBrush}" BorderThickness="{TemplateBinding BorderThickness}" Background="{TemplateBinding Background}">
<ItemsPresenter />
</Border>
- :にテンプレートの上の部分を調整します。
ただし、ListBoxの選択機能が必要ない場合は、単純なItemsControlで行います。