スタイリングが正しくないとListBox
、仮想化が失われることを読みました。この質問に対する notacat の回答として、彼の解決策は OK です。
ItemsPresenter をGrid
、Border
、 ...などの別のコンテナに入れるたびに気づきます。
<ControlTemplate TargetType="ListBox">
<ScrollViewer x:Name="ScrollViewer"
BorderBrush="{TemplateBinding BorderBrush}"
BorderThickness="{TemplateBinding BorderThickness}"
Background="{TemplateBinding Background}"
Foreground="{TemplateBinding Foreground}"
Padding="{TemplateBinding Padding}">
<StackPanel>
<TextBlock Text="{TemplateBinding MyText}" />
<ItemsPresenter/>
</StackPanel>
</ScrollViewer>
</ControlTemplate>
ListBox
仮想化はすぐに失われます。TextBlock
しかし、 beforeを配置したいのですがItemsPresenter
、ScrollViewerは 1 つの子要素しか受け入れません。
これに対処する方法は?
更新: この投稿を見ました。Derek LakinはそれTextBlock
をScrollViewer
テンプレートに配置することですが、どのようTextBlock
に配置できScrollContentPresenter
ますか?
P / S:私は私のように設定VirtualizingStackPanel
しItemsPanel
ますListBox
。