【发布时间】:2012-12-08 22:16:18
【问题描述】:
我读到如果样式不正确,ListBox 将失去其虚拟化。作为notacat's answer in this question,他的解决方案是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 将立即失去其虚拟化。但我确实想在ItemsPresenter 之前放置一个TextBlock,并且ScrollViewer 只接受1 个子元素。
如何处理?
更新:
我看到了这个 post,Derek Lakin 所做的是将 TextBlock 放置到 ScrollViewer 模板中,但是如何将 TextBlock 放置在 ScrollContentPresenter 中?
P/S:我确实为我的ListBox 设置了VirtualizingStackPanel 为ItemsPanel。
【问题讨论】:
标签: windows-phone-7 listbox scrollviewer virtualizingstackpanel itemspresenter