Стилизация выбранного ListViewItem в Windows 8 CP - PullRequest
9 голосов
/ 08 марта 2012

Я хочу изменить внешний вид границы выбранного элемента на изображении, связанном ниже.

enter image description here

Я уже осматривался на msdn.com и в Интернете, но ничего полезного не нашел.

Как я могу это сделать?

Ответы [ 2 ]

16 голосов
/ 11 марта 2012

Внешний вид выбора является частью шаблона ControlTemplate для ListViewItem.Чтобы изменить шаблон для всего ListView, используйте ItemContainerStyle, чтобы применить стиль к каждому элементу, который может содержать измененную версию шаблона.

<ListView>
  <ListView.ItemContainerStyle>
    <Style TargetType="ListViewItem">
      <Setter Property="Template">
        <Setter.Value>
          <ControlTemplate TargetType="ListViewItem">
            ...
          </ControlTemplate>
        </Setter.Value>
      </Setter>
    </Style>
  </ListView.ItemContainerStyle>
</ListView>

Шаблон по умолчанию для ListViewItem довольно сложный, поэтому длясохранить как можно больше поведения по умолчанию и дать вам хорошую отправную точку, проще всего использовать Blend для создания копии для вас.

В Blend щелкните правой кнопкой мыши свой ListView и выберите:

Редактировать дополнительные шаблоны -> Изменить контейнер сгенерированного элемента -> Редактировать копию ...

, и он создаст для вас стиль в форме выше с заполненным шаблоном по умолчанию.Внешний вид выбора использует несколько различных элементов в шаблоне, которые вы, возможно, захотите изменить - это можно увидеть, выбрав состояние «Выбрано» на панели «Состояния» в Blend и развернув выделенные элементы на панели «Объекты».

2 голосов
/ 28 августа 2014

Я нашел другое решение, которое может быть полезно для других: переопределить определенные ресурсы кисти в App.xaml.Он работает без клонирования любого стиля по умолчанию и так же просто, как:

<SolidColorBrush x:Key="ListViewItemSelectedBackgroundThemeBrush" Color="myColor1"/>
<SolidColorBrush x:Key="ListViewItemPointerOverBackgroundThemeBrush" Color="myColor2"/>

Конечно, есть и другие кусты, которые можно переопределить, и их список можно найти здесь: ListViewItemстили и шаблоны .

Обратите внимание, что этот подход изменяет внешний вид ВСЕХ списков представлений в приложении.

...