Я пытаюсь переопределить внешний вид выбранного элемента ListView (приложение в стиле Metro).
Я добился этого, определив VisualStateGroups в своем шаблоне.
<VisualStateManager.VisualStateGroups>
<VisualStateGroup x:Name="CommonStates">
<VisualState x:Name="Normal" />
<VisualState x:Name="PointerOver">
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="expenseItem" Storyboard.TargetProperty="Background">
<DiscreteObjectKeyFrame KeyTime="0" Value="LightGray"/>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
</VisualStateGroup>
<VisualStateGroup x:Name="SelectionStates">
<VisualState x:Name="Unselected" />
<VisualState x:Name="Selected">
<Storyboard>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="itemLocationName" Storyboard.TargetProperty="Foreground">
<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource ExpenseListHighlightedText}"/>
</ObjectAnimationUsingKeyFrames>
<ObjectAnimationUsingKeyFrames Storyboard.TargetName="expenseItem" Storyboard.TargetProperty="Background">
<DiscreteObjectKeyFrame KeyTime="0" Value="{StaticResource ApplicationGradientBlue}"/>
</ObjectAnimationUsingKeyFrames>
</Storyboard>
</VisualState>
</VisualStateGroup>
</VisualStateManager.VisualStateGroups>
Моя проблема в том, что когда я навожу курсор на выбранный элемент, фон меняется, даже если я этого не хочу. И когда я ухожу, элемент получает «нормальный» фон вместо сохранения «выбранного» фона.
Как указать, что фон для выбранного элемента не должен меняться?
Редактировать: я все еще хочу иметь чрезмерный эффект для элементов, которые не выбраны.