Наличие схемы для MouseOver для WPF ListView - PullRequest
1 голос
/ 04 апреля 2010

Я использую Windows 7, и текущий выбор элемента (по умолчанию) - закрасить фон васильковым. Можно ли избавиться от этого и заменить его контуром / границей в 1 пиксель над элементом списка, над которым находится мышь?

Я хочу нарисовать контур / границу размером 1 пиксель для любого элемента списка с интервалом в 1 пиксель между элементом списка и контуром / границей.

Я использую WrapPanel с изображением для каждого элемента.

1 Ответ

4 голосов
/ 04 апреля 2010

Используйте ItemContainerStyle, чтобы переопределить поведение фона по умолчанию, и в своем стиле используйте триггер на IsMouseOver, чтобы показать ваш контур (например, с помощью Setter for BorderThickness).

РЕДАКТИРОВАТЬ: Грубый пример (не тестировался):

<ListBox.ItemContainerStyle>
  <Style TargetType="ListBoxItem">
    <Setter Property="Template">
      <Setter.Value>
        <ControlTemplate>
          <Border Background="White" BorderThickness="5" Name="Bd">
            <Border.Style>
              <Style TargetType="Border">
                 <Setter Property="BorderBrush" Value="White" />
              </Style>
            </Border.Style>
            <ContentPresenter />
          </Border>
          <ControlTemplate.Triggers>
            <Trigger Property="IsMouseOver" Value="True">
              <Setter TargetName="Bd" Property="BorderBrush" Value="HotPink" />
            </Trigger>
          </ControlTemplate.Triggers>
        </ControlTemplate>
      </Setter.Value>
    </Setter>
  </Style>
</ListBox.ItemContainerStyle>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...