在 Windows Phone 上禁用 ListView 中某些项目的倾斜效果

Disabling tilt effect for some items in ListView on Windows Phone

我有一个 Windows Phone 8.1 应用程序显示 ListView 中的项目列表。我设置 IsItemClickEnabledTrue.

ListView、"active" 和 "disabled" 中有两种类型的项目。两种类型的渲染方式不同,我使用 ItemTemplateSelector 来选择正确的模板。

我希望 "active" 项目可以通过标准倾斜效果(按下动画)进行点击,而 "disabled" 项目不产生倾斜效果(我不关心被触发的点击,我可以应付)。

我发现我可以在整个编辑 ItemContainerStyle 模板时禁用 ListView 的倾斜效果。但是我怎样才能只对 ListView 中的某些项目禁用它?

您可以在 ItemContainerStyle 中禁用倾斜,并为单个项目模板启用倾斜...通过例如带有倾斜效果的自定义控件。

解决方案是使用 ItemContainerStyleSelector:

  • 定义一个具有两种样式的自定义 StyleSelector 以及在这两种样式之间切换的逻辑

  • ListView

  • 上用作 ItemContainerStyleSelector
  • 确保从 ListView 中删除任何明确的 ItemContainerStyle。如果定义一个,它将被视为高级样式,而不是默认样式,并且 StyleSelector 将不起作用。