在 Windows Phone 上禁用 ListView 中某些项目的倾斜效果
Disabling tilt effect for some items in ListView on Windows Phone
我有一个 Windows Phone 8.1 应用程序显示 ListView
中的项目列表。我设置
IsItemClickEnabled
到 True
.
ListView
、"active" 和 "disabled" 中有两种类型的项目。两种类型的渲染方式不同,我使用 ItemTemplateSelector
来选择正确的模板。
我希望 "active" 项目可以通过标准倾斜效果(按下动画)进行点击,而 "disabled" 项目不产生倾斜效果(我不关心被触发的点击,我可以应付)。
我发现我可以在整个编辑 ItemContainerStyle
模板时禁用 ListView
的倾斜效果。但是我怎样才能只对 ListView
中的某些项目禁用它?
您可以在 ItemContainerStyle 中禁用倾斜,并为单个项目模板启用倾斜...通过例如带有倾斜效果的自定义控件。
解决方案是使用 ItemContainerStyleSelector
:
定义一个具有两种样式的自定义 StyleSelector
以及在这两种样式之间切换的逻辑
在 ListView
上用作 ItemContainerStyleSelector
确保从 ListView
中删除任何明确的 ItemContainerStyle
。如果定义一个,它将被视为高级样式,而不是默认样式,并且 StyleSelector
将不起作用。
我有一个 Windows Phone 8.1 应用程序显示 ListView
中的项目列表。我设置
IsItemClickEnabled
到 True
.
ListView
、"active" 和 "disabled" 中有两种类型的项目。两种类型的渲染方式不同,我使用 ItemTemplateSelector
来选择正确的模板。
我希望 "active" 项目可以通过标准倾斜效果(按下动画)进行点击,而 "disabled" 项目不产生倾斜效果(我不关心被触发的点击,我可以应付)。
我发现我可以在整个编辑 ItemContainerStyle
模板时禁用 ListView
的倾斜效果。但是我怎样才能只对 ListView
中的某些项目禁用它?
您可以在 ItemContainerStyle 中禁用倾斜,并为单个项目模板启用倾斜...通过例如带有倾斜效果的自定义控件。
解决方案是使用 ItemContainerStyleSelector
:
定义一个具有两种样式的自定义
StyleSelector
以及在这两种样式之间切换的逻辑在
ListView
上用作 确保从
ListView
中删除任何明确的ItemContainerStyle
。如果定义一个,它将被视为高级样式,而不是默认样式,并且StyleSelector
将不起作用。
ItemContainerStyleSelector