Xaml ListBox、ListView和GridView项目的样式设置

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"

这些控件的默认颜色似乎与Windows主题颜色相似。如何更改悬停、选定、选定悬停和按下的颜色(代码或XAML)?以下内容不适用于ListView:

<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>