내 프로젝트 중 하나에서 ListView를 상속하고 새 컨트롤 템플릿을 설정하여 스타일을 재정의했습니다. 또한 열 머리글 스타일을 재정의했습니다. 스타일 키를 설정하고의 GridView에 스타일을 참조하여ListView 스타일 내에서 GridViewColumnHeader 스타일 설정
1) : 지금까지 나는이 작업을 수행하는 두 가지 방법을 발견했다
<Style TargetType="{x:Type GridViewColumnHeader}" x:Key="MyHeaderStyle">
<Setter Property="Background" Value="Wheat" />
</Style>
<GridView ColumnHeaderContainerStyle="{StaticResource MyHeaderStyle}">
2) 상기 스타일의 스타일 키를 설정하지 않음으로써. 이제 GridView에서 스타일을 참조 할 필요는 없지만 목록 뷰 유형과 상관없이 응용 프로그램의 모든 listview 헤더를 재정의합니다.
내 응용 프로그램에서 많은 listviews를 사용하기 때문에 세 번째보다 유연한 방법으로이 작업을 수행하고 싶습니다. ListView 스타일 내부에서 GridView.ColumnHeaderContainerStyle을 설정합니다. 그렇게하면 각 GridView에서 머리글 스타일을 참조 할 필요가 없습니다.
<Window.Resources>
<Style TargetType="{x:Type GridViewColumnHeader}" x:Key="MyHeaderStyle">
<Setter Property="Background" Value="Wheat" />
</Style>
<Style TargetType="{x:Type list:MyListView}">
<Setter Property="GridView.ColumnHeaderContainerStyle" Value="{StaticResource MyHeaderStyle}" />
<Setter Property="Background" Value="Linen" />
</Style>
</Window.Resources>
<list:MyListView>
<list:MyListView.View>
<GridView>
<GridViewColumn Header="Column1" />
<GridViewColumn Header="Column2" />
</GridView>
</list:MyListView.View>
</list:MyListView>
이 불행하게도 헤더 스타일을 설정하지 않습니다 내가 위의 XAML이 변경하면, 그것은 작동 ... :
<GridView ColumnHeaderContainerStyle="{StaticResource MyHeaderStyle}">
하나를 여기에 지금까지 XAML의 단순화 된 버전입니다 아이디어?