2012-03-08 3 views
9

아래 링크 된 그림에서 선택한 항목의 테두리 모양을 변경하고 싶습니다.Windows 8에서 선택한 ListViewItem 스타일 지정 CP

enter image description here

이미 msdn.com과 인터넷에 주위를 찾고 있었어요,하지만 난 유용한 아무것도 발견했습니다.

어떻게하면됩니까?

+0

WPF 또는 Metro XAML 앱을 사용하고 있습니까? 그것들은 완전히 별개의 프레임 워크이지만이 태그를 붙일 수 있습니다. –

+0

Metro XAML 앱을 사용하고 있습니다. – t4nky

답변

16

선택 모양은 ListViewItem의 ControlTemplate의 일부입니다. 전체 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에 대한 기본 템플릿은 당신을 위해 사본을 만들 혼합을 사용하는 가장 쉬운 방법, 꽤 복잡하다. 혼합에서

, 당신의 ListView를 마우스 오른쪽 버튼으로 클릭하고 선택

편집 추가 템플릿 -> 편집 생성 된 항목 컨테이너 -> 편집 사본 ...

그리고 당신의 스타일을 만듭니다 템플릿의 기본 모양이 채워진 위의 모양입니다. 선택 모양은 수정할 수있는 템플릿의 몇 가지 다른 요소를 사용합니다. 이러한 상태는 블렌드의 상태 패널에서 선택 상태를 선택하고 강조 표시된 항목으로 드릴링하여 볼 수 있습니다 개체 패널에서

+0

고마워,이 정확히 내가 무엇을 찾고 있었는지. 나는이 물건들을 돕기 위해 Visual Studio를위한 블렌드 (Blend)를 가지고 있다는 것을 잊고있다. –

2

다른 브러시 리소스를 무시하려면 App.xaml으로 바꾸십시오. 그것은 어떤 기본 스타일을 복제하지 않고 작동하고,만큼이나 간단하다

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

은 물론, 오버라이드 (override) 할 수 있습니다 더 덤불이 있고, 그 목록은 여기에서 찾을 수 있습니다 : ListViewItem styles and templates를.

이 방법을 사용하면 응용 프로그램의 모든 ListView에 대한 모양이 변경됩니다.