Reputation: 9141
First of all, I am new to WPF.
I have this style ready for my items:
<Style x:Key="lvItemHover" TargetType="{x:Type ListViewItem}">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="Foreground" Value="Black" />
</Trigger>
</Style.Triggers>
</Style>
How do I give this style to the items in my ListView
?
Upvotes: 16
Views: 30539
Reputation: 718
This is the simplest way to define ListViewItem style from static resource:
<ListView x:Name="listView" ItemContainerStyle="{StaticResource lvItemHover}">
</ListView>
Upvotes: 6
Reputation: 23266
Try this
<ListView x:Name="listView">
<ListView.ItemContainerStyle>
<Style TargetType="{x:Type ListViewItem}">
<Style.Triggers>
<Trigger Property="IsMouseOver" Value="true">
<Setter Property="Foreground" Value="Black" />
</Trigger>
</Style.Triggers>
</Style>
</ListView.ItemContainerStyle>
<ListViewItem>Item1</ListViewItem>
<ListViewItem>Item2</ListViewItem>
<ListViewItem>Item3</ListViewItem>
</ListView>
Upvotes: 32
Reputation: 18000
You have many options
Remove the x:Key="lvItemHover"
from your style and it will get
applied to all your ListViewItems
Apply the style to each ListViewItem like
<ListViewItem
Style="{StaticResource
lvItemHover}">Item1</ListViewItem>
Put your style inside the ListView.ItemContainerStyle
as in the above post
Upvotes: 6