ListBox,ListView和GridView项的样式

时间:2017-08-21 15:04:32

标签: xaml uwp win-universal-app windows-10-universal uwp-xaml

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

<ListView>
    <ListViewItemPresenter
        PointerOverBackground="#99CEEA"
        SelectedPressedBackground="#72BFE9"
        SelectedBackground="#72BFE9"
        SelectedPointerOverBackground="#99CEEA"
        />

2 个答案:

答案 0 :(得分:3)

在VS / Blend Designer中,右键单击ListView并选择

  

修改其他模板&gt; 编辑生成的项容器   (ItemContainerStyle)&gt; 编辑副本...

enter image description here

在上面的弹出窗口中,如果您希望将此样式应用于所有您的ListViewItem,请选择应用于所有,否则只需为其命名。

我建议您创建一个新的资源字典,用于存储所有ListView相关样式。为此,只需点击新建... 按钮,然后为资源字典命名(例如ListViewStyles.xaml)。

最后,点击确定按钮,您现在拥有完全生成的样式。

在样式ControlTemplate中,您可以找到ListViewItemPresenter控件并相应地更新其颜色。

答案 1 :(得分:0)

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>