【发布时间】:2014-08-20 09:22:58
【问题描述】:
我有一个VirtualizingStackPanel,其中包含来自ItemsSource 的项目。项目多于空间显示VirtualizingStackPanel中的所有项目。
示例:我有 5.3 件物品的空间,但我有 7 件物品。现在我希望VirtualizingStackPanel 显示 5 个项目并隐藏其余项目。
问题:面板显示 6 个项目。最后一项溢出了。
在这种情况下是否可以仅显示 5 个项目(= 没有溢出项目),仅使用 XAML?
我的 StackPanel 的当前代码:
<ItemsControl ItemTemplate="{StaticResource rpTemplate}" ItemsSource="...">
<ItemsPanelTemplate>
<VirtualizingStackPanel Orientation="Vertical" />
</ItemsPanelTemplate>
</ItemsControl>
还有我的数据模板:
<DataTemplate x:Key="rpTemplate">
<Label Content="{Binding Name}" HorizontalAlignment="Left" />
</DataTemplate>
不一定是VirtualizingStackPanel,可以是 StackPanel、DockPanel 等等,只要我能列出项目即可。
【问题讨论】:
-
您可以声明一个自定义
Panel来为您执行此操作,但创建自定义虚拟化Panels 不适合虚心。 -
@Sheridan 我也可以使用自定义
Panel(更新了我的问题)。你能多解释一下存档这种面板需要哪些步骤吗? -
不幸的是,这与本网站无关,因为它太宽泛太复杂了。 WPF Control Development Unleashed 一书中有一个很好的章节介绍了它,但不幸的是,他们以前提供的在线版本不再可用。
-
我记得不久前回答过非常相似的问题。这个问题对你有帮助吗? Virtualizing Panel that doesn't crop items
-
@Rachel:我目前正在解决我的问题,您的解决方案正在帮助我,谢谢。我正在使用附加属性研究一些不同的方法。