スタイリングが正しくないと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。