2012-05-07 5 views
0

ListView(Metroスタイルのアプリケーション)の選択項目の外観を再定義しようとしています。ListViewでVisualStateGroupsを指定する

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> 

私の問題は、私が選択した項目の上にカーソルを置くと、私が望んでいなくても、背景が変わるということです。私が外に出ると、アイテムは「選択された」背景を保持するのではなく、「通常の」背景になります。

選択したアイテムで背景を変更しないように指定する方法を教えてください。

編集:私はまだ選択されていない項目に効果を上げなければなりません。

答えて

3

PointerOver状態からストーリーボードを削除する必要があります。

+0

リストの選択されていない項目にこの効果を残したいと思います。 – Jonas

関連する問題