ListBox、ListView 和 GridView 项的样式
Styling for ListBox, ListView and GridView Items
这些控件的默认颜色似乎与 Windows 主题颜色相似。如何更改悬停、选定、选定的悬停和按下的颜色(代码或 XAML)?以下不适用于 ListView:
<ListView>
<ListViewItemPresenter
PointerOverBackground="#99CEEA"
SelectedPressedBackground="#72BFE9"
SelectedBackground="#72BFE9"
SelectedPointerOverBackground="#99CEEA"
/>
在您的 VS/Blend 设计器中,右键单击您的 ListView
和 select
Edit Additional Templates > Edit Generated Item Container
(ItemContainerStyle) > Edit a Copy...
在上面的弹出窗口 window 中,如果您希望此样式应用于 所有 您的 ListViewItem
, select 适用于所有 否则只要给它一个名字。
我建议创建一个新的 资源字典 来存储所有 ListView
相关的样式。为此,只需点击 New... 按钮并为资源字典命名(例如 ListViewStyles.xaml
)。
最后,点击 确定 按钮,您现在拥有一个完全生成的样式。
在样式的 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>
这些控件的默认颜色似乎与 Windows 主题颜色相似。如何更改悬停、选定、选定的悬停和按下的颜色(代码或 XAML)?以下不适用于 ListView:
<ListView>
<ListViewItemPresenter
PointerOverBackground="#99CEEA"
SelectedPressedBackground="#72BFE9"
SelectedBackground="#72BFE9"
SelectedPointerOverBackground="#99CEEA"
/>
在您的 VS/Blend 设计器中,右键单击您的 ListView
和 select
Edit Additional Templates > Edit Generated Item Container (ItemContainerStyle) > Edit a Copy...
在上面的弹出窗口 window 中,如果您希望此样式应用于 所有 您的 ListViewItem
, select 适用于所有 否则只要给它一个名字。
我建议创建一个新的 资源字典 来存储所有 ListView
相关的样式。为此,只需点击 New... 按钮并为资源字典命名(例如 ListViewStyles.xaml
)。
最后,点击 确定 按钮,您现在拥有一个完全生成的样式。
在样式的 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>