Как применить стиль к ListViewItems в WPF?

Прежде всего, я новичок в WPF.


У меня есть этот стиль, готовый для моих вещей:

    <Style x:Key="lvItemHover" TargetType="{x:Type ListViewItem}">
        <Style.Triggers>
            <Trigger Property="IsMouseOver" Value="true">
                <Setter Property="Foreground" Value="Black" />
            </Trigger>
        </Style.Triggers>
    </Style>

Как передать этот стиль элементам в моем ListView?

Ответ 1

Попробуйте это

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

Ответ 2

У вас есть много вариантов

  • Удалите x:Key="lvItemHover" от вашего стиля, и он получит применяется ко всем вашим спискам ListViewItems

  • Применить стиль к каждому ListViewItem нравится

    <ListViewItem Style="{StaticResource lvItemHover}">Item1</ListViewItem>

  • Поместите свой стиль внутри ListView.ItemContainerStyle, как в приведенном выше сообщении

Ответ 3

Это самый простой способ определить стиль ListViewItem из статического ресурса:

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