简体   繁体   中英

How do I apply a style to the ListViewItems in WPF?

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 ?

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>

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

This is the simplest way to define ListViewItem style from static resource:

  <ListView x:Name="listView" ItemContainerStyle="{StaticResource lvItemHover}"> </ListView> 

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM