我有一个 StackPanel,我可以从中动态隐藏/显示项目,我想让它使每个项目的背景属性交替(白色和灰色)。我尝试以编程方式执行此操作,但效率非常低,因为每次隐藏/显示项目时都会运行设置每个项目背景的代码。我知道也许使用样式/模板可以解决这个问题,但由于某种原因,WPF 的这个特殊功能让我每次尝试学习它时都感到困惑。有人可以告诉我怎么做吗?
此外,我曾想过使用 ListBox/ListViews 而不是 StackPanel,但相信我,由于我的特殊实现,它们不能正常工作。
您可以使用附加属性 ItemsControl.AlternationIndex 上的触发器对任何 ItemsControl 执行此操作(示例 - http://dotnetbutchering.blogspot.com/2009/08/how-to-set-wpf-listview-alternate-row.html)但我不要认为只有 StackPanel 在 xaml 中是可能的。您确定以编程方式执行它很慢吗?我很确定它会运行得足够快,因此您无需费心。