2010-04-04 5 views
1

Windows 7을 사용하고 있으며 현재 항목 선택 (기본적으로)은 수레 국화가있는 파란색으로 배경을 칠하는 것입니다. 이것을 없애고 마우스가 끝난 목록보기 항목 위에 1px 개요/테두리로 바꿀 수 있습니까?WPF ListView 용 MouseOver에 대한 개요가 있습니다.

기본적으로 목록 뷰 항목과 개요/테두리 사이에 1 픽셀 간격의 모든 목록보기 항목 위에 1px 개요/테두리를 그립니다.

각 항목에 이미지가 포함 된 WrapPanel을 사용하고 있습니다.

답변

4

ItemContainerStyle을 사용하여 기본 배경 동작을 재정의하고 스타일에서 IsMouseOver의 트리거를 사용하여 윤곽선을 표시합니다 (예 : 경계선 두께 설정 도구).

편집 : (테스트하지) 거친 예 :

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

감사합니다. 나는 WPF에 매우 익숙하다. 작은 표본을 보여 주시겠습니까? 아니면 링크? –

+1

거친 예제가 추가되었습니다. 원하는 효과를 얻으려면 약간의 실험을해야 할 수도 있지만, 잘하면 올바른 방향으로 나아갈 수 있습니다. – itowlson

+0

Thanks ListBox를 ListView로 대체했지만 "Setter가 직접 내용을 지원하지 않습니다." –