WPF 프로젝트 창에 WPF DataGrid
이 있습니다. 그리드에 DataTable
을 채우고 (불행히도 필연적으로) 열을 자동 생성하고 특정 기타 요인에 따라 열의 헤더 색을 변경해야한다는 요구 사항이 있습니다.런타임에 자동 생성 열이있는 WPF DataGrid의 열 머리글 색을 변경하십시오.
강조 표시해야하는 열 이름 목록이 있으며이 열을 기반으로 색인을 쉽게 알아낼 수 있습니다 (DataGrid
에서 직접 생성 한 것처럼).
그러나 열 머리글이 색상을 변경하지 못하는 것 같습니다. 디자인 타임에 어떤 열을 강조해야할지 모르기 때문에 코드에서이 작업을 수행해야합니다. 머리글에 이미 템플릿이 있습니다 ... 내가하는 일을 "재정의"하고 있는지 확실하지 않습니다.
그리드 :
<DataGrid FrozenColumnCount="1" AutoGenerateColumns="True" Grid.Row="1"
AlternationCount="2" HeadersVisibility="Column" Name="dgSkillsMatrix"
Margin="0,0,2,1" HorizontalGridLinesBrush="White" VerticalGridLinesBrush="White"
AlternatingRowBackground="#FFD0D0EB" RowBackground="#FFECECF5" FontSize="10.5"
Grid.ColumnSpan="1" CellStyle="{StaticResource CellHighlighterStyle}"
ColumnHeaderStyle="{StaticResource dataGridColumnHeader}" />
헤더 템플릿/스타일 :
<DataTemplate x:Key="RotateHeaderTemplate" >
<TextBlock Text="{Binding}" Foreground="Blue" >
<TextBlock.LayoutTransform>
<RotateTransform Angle="-90" />
</TextBlock.LayoutTransform>
</TextBlock>
</DataTemplate>
그리고 이것은 내가 열 머리글이 즉 같은 Window_Activated
이벤트에서 호출 (변경 얻기 위해 지금까지 시도한 것입니다 그리드/WPF 트리가 실제로 생성 될 때 생성자 다음에 호출 됨).
이유는'HeaderStringFormat'에'Colors.Red을 설정하는 스타일이다 '? – Rachel
텍스트를 강조 표시하려고 할 때 주위를 놀고 있었는데, 이는 허용 될 수 있지만 전체 "머리글"셀을 강조 표시합니다. 이것은 작동하지 않았지만 여전히 실행되었고 WPF 예외는 제공하지 않았습니다. –
'HeaderStringFormat'은 일반적으로 색상이 아닌''M/d/yy ''나''#, ## 0.00 "'같은 것이기 때문에 궁금합니다. – Rachel