Xaml ListBox、ListView和GridView项目的样式设置
这些控件的默认颜色似乎与Windows主题颜色相似。如何更改悬停、选定、选定悬停和按下的颜色(代码或XAML)?以下内容不适用于ListView:Xaml ListBox、ListView和GridView项目的样式设置,xaml,uwp,win-universal-app,windows-10-universal,uwp-xaml,Xaml,Uwp,Win Universal App,Windows 10 Universal,Uwp Xaml,这些控件的默认颜色似乎与Windows主题颜色相似。如何更改悬停、选定、选定悬停和按下的颜色(代码或XAML)?以下内容不适用于ListView: <ListView> <ListViewItemPresenter PointerOverBackground="#99CEEA" SelectedPressedBackground="#72BFE9" SelectedBackground="#72BFE9"
<ListView>
<ListViewItemPresenter
PointerOverBackground="#99CEEA"
SelectedPressedBackground="#72BFE9"
SelectedBackground="#72BFE9"
SelectedPointerOverBackground="#99CEEA"
/>
在VS/Blend Designer中,右键单击您的
列表视图
,然后选择
编辑其他模板>编辑生成的项目容器
(ItemContainerStyle)>编辑副本
在上面的弹出窗口中,如果希望将此样式应用于所有列表视图项
,请选择“应用于所有”,否则只需给它一个名称即可
我建议创建一个新的资源字典来存储所有ListView
相关样式。要做到这一点,只需点击新的。。。按钮并为资源字典命名(例如ListViewStyles.xaml
)
最后,点击OK按钮,您现在有了一个完全生成的样式
在样式的
ControlTemplate
中,您可以找到ListViewItemPresenter
控件并相应地更新其颜色。在VS/Blend设计器中,右键单击您的ListView
,然后选择
编辑其他模板>编辑生成的项目容器
(ItemContainerStyle)>编辑副本
在上面的弹出窗口中,如果希望将此样式应用于所有列表视图项
,请选择“应用于所有”,否则只需给它一个名称即可
我建议创建一个新的资源字典来存储所有ListView
相关样式。要做到这一点,只需点击新的。。。按钮并为资源字典命名(例如ListViewStyles.xaml
)
最后,点击OK按钮,您现在有了一个完全生成的样式
在样式的
ControlTemplate
中,可以找到ListViewItemPresenter
控件,并相应地更新其颜色。ListViewItemPresenter在XAML中的位置不正确。更改此项:
<ListView>
<ListViewItemPresenter
PointerOverBackground="#99CEEA"
SelectedPressedBackground="#72BFE9"
SelectedBackground="#72BFE9"
SelectedPointerOverBackground="#99CEEA"
/>
</ListView>
为此:
<ListView>
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListViewItem">
<ListViewItemPresenter
PointerOverBackground="#99CEEA"
SelectedPressedBackground="#72BFE9"
SelectedBackground="#72BFE9"
SelectedPointerOverBackground="#99CEEA" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListView.ItemContainerStyle>
<ListView>
ListViewItemPresenter在XAML中的位置不正确。更改此项:
<ListView>
<ListViewItemPresenter
PointerOverBackground="#99CEEA"
SelectedPressedBackground="#72BFE9"
SelectedBackground="#72BFE9"
SelectedPointerOverBackground="#99CEEA"
/>
</ListView>
为此:
<ListView>
<ListView.ItemContainerStyle>
<Style TargetType="ListViewItem">
<Setter Property="Template">
<Setter.Value>
<ControlTemplate TargetType="ListViewItem">
<ListViewItemPresenter
PointerOverBackground="#99CEEA"
SelectedPressedBackground="#72BFE9"
SelectedBackground="#72BFE9"
SelectedPointerOverBackground="#99CEEA" />
</ControlTemplate>
</Setter.Value>
</Setter>
</Style>
</ListView.ItemContainerStyle>
<ListView>