忽略Windows Phone 8.1 ListViewItem默认XAML样式(generic.XAML)

忽略Windows Phone 8.1 ListViewItem默认XAML样式(generic.XAML),xaml,windows-phone-8.1,listviewitem,Xaml,Windows Phone 8.1,Listviewitem,我在XAML页面中添加了一个ListView,并希望对ListViewItems使用默认样式,以便在选中一个项目时,边框高亮显示,复选框图示符可见 然而,我似乎无法做到这一点;单击某个项目以选择它不会在屏幕上进行任何视觉更改。我通过处理SelectionChanged事件并设置断点来验证是否正在选择该项。项目已被选中,但在视觉上没有任何不同 我确实定义了一个覆盖拉伸值的ListViewItem样式,并认为这可能会终止所有默认样式,但删除所有提及ListViewItem或ListView的自定义样

我在XAML页面中添加了一个ListView,并希望对ListViewItems使用默认样式,以便在选中一个项目时,边框高亮显示,复选框图示符可见

然而,我似乎无法做到这一点;单击某个项目以选择它不会在屏幕上进行任何视觉更改。我通过处理SelectionChanged事件并设置断点来验证是否正在选择该项。项目已被选中,但在视觉上没有任何不同

我确实定义了一个覆盖拉伸值的ListViewItem样式,并认为这可能会终止所有默认样式,但删除所有提及ListViewItem或ListView的自定义样式后,仍然会保留默认样式

我查看了generic.xaml和默认样式,其中包含选定的状态和复选标记标志符号,但它们似乎没有被应用

我甚至可以进入blend并编辑ItemContainerStyle来创建副本,它从generic.xaml中提取所有内容并将其分配给模板。但是,这些样式仍然被忽略,我看不到图示符,即使在混合中,当我选择不同的视觉状态时,如“selected”

我改变了背景,以防它因为颜色相同而看不见,但它似乎不在那里


是什么原因导致默认样式被忽略,即使它们被复制并直接指定?

因此,在比较了创建副本的Blend-in和generic.xaml样式生成的样式后,这似乎是由错误的样式定义引起的错误

generic.xaml中的ListViewItem样式与文档中的ListViewItem模板不同:

具体而言,上面列出的文档模板在故事板中为“选定”和“选定非聚焦”状态定义了一个附加动画:


将此部分添加到样式中修复了问题,现在的视觉状态与预期一致

因此,这里的解决方案可能是添加缺少的部分,或者更好的是,在Windows Phone for ListViewItem中使用文档模板作为基础,因为generic.xaml中的默认模板并不完整

我不知道这是否是出于设计,但它确实感觉像一个bug

<DoubleAnimation Storyboard.TargetName="SelectedCheckMark"
            Storyboard.TargetProperty="Opacity"
            Duration="0" To="1" />